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

【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 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 matlab求解平差
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊
  • ¥15 安装svn网络有问题怎么办
  • ¥15 vue2登录调用后端接口如何实现