weixin_39017744
weixin_39017744
采纳率71.1%
2020-09-05 15:59

请问如何用python读取excel表格并存入二维列表?

80

我想读取两个excel表格,他们都有一组ID。表格A的属性X为空,表格B只有ID和X。对比两个表格的ID,如果相同则合并数据补全表格A中的X属性。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

4条回答

  • caozhy 回答这么多问题就耍赖把我的积分一笔勾销了 7月前

    这个用pandas一个库就可以,而且只要5行代码

    import pandas as pd
    df1=pd.read_excel('你的 excel  文件1.xlsx',sheet_name='sheet1')
    df2=pd.read_excel('你的 excel  文件2.xlsx',sheet_name='sheet1')
    s = df2.set_index('id')['x']
    df1['X'] = df1['id'].map(s).fillna(df1['name']).astype(str)
    
    点赞 2 评论 复制链接分享
  • qq_39412061 吃鸡王者 7月前
    import pandas as pd
    excel_a=pd.read_excel("表格A")
    excel_b=pd.read_excel('表格B')
    
    excel_c=pd.merge(excel_a,excel_b,on='ID')
    print(excel_c)    #输出结果
    excel_c.to_excel('要保存的文件名称')   #将结果保存
    
    点赞 评论 复制链接分享
  • wscem 小小土豆 7月前

    两种办法
    #1
    利用python的excel库去读写excel文件,如xlrd,xlwt
    #2
    将excel导出为csv,csv是文本格式,然后python直读写读文本,csv可以用excel打开

    点赞 评论 复制链接分享
  • kingwolf_JavaScript 浴火_凤凰 7月前

    下面的代码是按照默认来的,默认数据都在sheet1的表格里
    表格存储数据的顺序默认是 校园id-姓名-身份证号-性别

    1.xls是包含上面四项数据的文档 2.xls是包含身份证和校园id 2项的文档
    合并后的文档 在3.xls里

    这些都可以在代码里修改,如果看不懂不会修改的话再给我留言吧

    # 导入模块
    import xlrd
    import xlwt
    
    
    def read_excel():
        workbook1 = xlrd.open_workbook(r'1.xls')
        workbook2 = xlrd.open_workbook(r'2.xls')
        sheet1 = workbook1.sheet_by_name('Sheet1')
        sheet2 = workbook2.sheet_by_name('Sheet1')
        list1 = []
        for i in range(sheet1.nrows - 1):
            list1.append(sheet1.row_values(i + 1))
        print(list1)
        dict2 = {}
        for i in range(sheet2.nrows - 1):
            rows2 = sheet2.row_values(i + 1)
            dict2[str(rows2[0])] = rows2[1]
        print(dict2)
    
        myWorkbook = xlwt.Workbook()
        worksheet = myWorkbook.add_sheet('合并后')
        worksheet.write(0, 0, label='校园ID')
        worksheet.write(0, 1, label='姓名')
        worksheet.write(0, 2, label='身份证号')
        worksheet.write(0, 3, label='性别')
        i = 1
        for item in list1:
            key = str(item[2])
            if dict2[key]:
                item[0] = dict2[key]
            worksheet.write(i, 0, item[0])
            worksheet.write(i, 1, item[1])
            worksheet.write(i, 2, item[2])
            worksheet.write(i, 3, item[3])
            i = i + 1
        myWorkbook.save('3.xls')
    
    
    if __name__ == '__main__':
        # 读取Excel
        read_excel()
    
    
    点赞 评论 复制链接分享