one_hundred_MA 2019-12-17 13:42 采纳率: 100%
浏览 966
已采纳

【python3.8字典问题请教】对Excel中数据提取,相同项对应值相加,写入新sheet表

图片说明

我想提取Sheet表中的N、O和R列,对R列中相同姓名的人对应的N、O列的值分别相加,形成图2这样

图片说明

print('Opening workbook...')
wb = openpyxl.load_workbook('C:/Users/mawenxin/Desktop/dome1/asd.xlsx') #打开Excel表格
sheet = wb.get_sheet_by_name('Sheet1') #获取工作表
nameData = { }  #创建字典
print('Reading rows...')
for row in range(2,sheet.max_row+1):  #从第二行循环到最后一行
    JE = sheet['N'+str(row)].value  
    name = sheet['E'+ str(row)].value
    SY = sheet['O'+str(row)].value  #存储每一列的数据
    #字典结构nameData['姓名'][金额][使用金额]
    nameData={name,(JE,SY)}

我按照网上以及书上的内容只能写这点,也不知道对不对

【问题】

字典内能不能一个键对应两个值,或者对应一个元组或列表?

用什么函数进行提取合并姓名?

如果自定义函数要怎么写?

能不能帮我写一下,琢磨很久了也不知道咋写

  • 写回答

4条回答 默认 最新

  • 吃鸡王者 2019-12-17 14:15
    关注

    建议用pandas来处理
    具体如下:
    如果没有安装pandas要先安装pandas模块(pip install pandas)

    import pandas as pd
        data=pd.read_excel('C:/Users/mawenxin/Desktop/dome1/asd.xlsx')
        data=data[['批示','金额','使用金额']]
        data=data.groupby(by='批示',as_index=False).sum()
        data.columns=['批示','求和项:金额','求和项:使用金额']               #data 就是你要的数据表
    
    

    或者

    import pandas as pd
        data=pd.read_excel('C:/Users/mawenxin/Desktop/dome1/asd.xlsx')
        data=data[['批示','金额','使用金额']]
        data=data.groupby(by='批示').sum()
        data.columns=['求和项:金额','求和项:使用金额']               #data 就是你要的数据表
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 SQLServer怎么录入下标
  • ¥100 无网格伽辽金方法研究裂纹扩展的程序
  • ¥15 错误于library(org.Hs.eg.db): 不存在叫‘org.Hs.eg.db’这个名称的程序包,如何解决?
  • ¥60 求一个图片处理程序,要求将图像大小跟现实生活中的大小按比例联系起来的
  • ¥50 求一位精通京东相关开发的专家
  • ¥100 求懂行的大ge给小di解答下!
  • ¥15 pcl运行在qt msvc2019环境运行效率低于visual studio 2019
  • ¥15 MAUI,Zxing扫码,华为手机没反应。可提高悬赏
  • ¥15 python运行报错 ModuleNotFoundError: No module named 'torch'
  • ¥100 华为手机私有App后台保活