鱼C论坛

 找回密码
 立即注册
查看: 2690|回复: 11

[已解决]python 处理excel表格,判断前几列相等,合并后面几列的数据

[复制链接]
发表于 2021-4-13 14:35:21 | 显示全部楼层 |阅读模式
60鱼币
本帖最后由 python鱼new 于 2021-4-13 14:40 编辑

上个贴没说清楚,重新发一下

看图片,前面5列值都一样的话算重复的行,需要把这些重复行后面的数据合并下,其它行没有重复的保持不变。图片填充颜色一样的就是重复了。
最佳答案
2021-4-13 14:35:22
本帖最后由 阿奇_o 于 2021-4-13 15:42 编辑

那就是 分组求和 。不难,但
小问题是,你这里的“需求量”列(第六列),图片1(处理后)数据没有求和(没合并),
所以,这一列,是否也是需要统计合并的?(你列名的颜色 也让我感到疑惑,到底是前五列,还是前六列)

先上代码吧,如
df = pd.read_excel('excel_data.xlsx', sheet_name='Sheet1')
print(df.columns)
df_g = df.groupby(list(df.columns[:5]))[df.columns[5:-1]].sum()   # 备注(最后一列)为字符值,不做聚合计算
# print(df_g)
df_g.to_excel('excel_data_OK.xlsx')
处理后.png
处理前.png

最佳答案

查看完整内容

那就是 分组求和 。不难,但 小问题是,你这里的“需求量”列(第六列),图片1(处理后)数据没有求和(没合并), 所以,这一列,是否也是需要统计合并的?(你列名的颜色 也让我感到疑惑,到底是前五列,还是前六列) 先上代码吧,如
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-4-13 14:35:22 | 显示全部楼层    本楼为最佳答案   
本帖最后由 阿奇_o 于 2021-4-13 15:42 编辑

那就是 分组求和 。不难,但
小问题是,你这里的“需求量”列(第六列),图片1(处理后)数据没有求和(没合并),
所以,这一列,是否也是需要统计合并的?(你列名的颜色 也让我感到疑惑,到底是前五列,还是前六列)

先上代码吧,如
df = pd.read_excel('excel_data.xlsx', sheet_name='Sheet1')
print(df.columns)
df_g = df.groupby(list(df.columns[:5]))[df.columns[5:-1]].sum()   # 备注(最后一列)为字符值,不做聚合计算
# print(df_g)
df_g.to_excel('excel_data_OK.xlsx')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-4-13 18:01:18 | 显示全部楼层
阿奇_o 发表于 2021-4-13 15:35
那就是 分组求和 。不难,但
小问题是,你这里的“需求量”列(第六列),图片1(处理后)数据没有求和( ...

大佬牛逼,第六列无所谓了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-4-13 18:11:51 | 显示全部楼层
阿奇_o 发表于 2021-4-13 14:35
那就是 分组求和 。不难,但
小问题是,你这里的“需求量”列(第六列),图片1(处理后)数据没有求和( ...

大佬这里可以微调一下吗,不要合并单元格
12.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-4-13 18:14:07 | 显示全部楼层
阿奇_o 发表于 2021-4-13 14:35
那就是 分组求和 。不难,但
小问题是,你这里的“需求量”列(第六列),图片1(处理后)数据没有求和( ...

df = pd.read_excel('excel_data.xlsx', sheet_name='Sheet1')

大佬,第1行这句代码中,pd 是什么意思,没看明白,烦请指导一下哈,感谢~~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-4-13 18:38:48 | 显示全部楼层
haoliang9324 发表于 2021-4-13 18:14
df = pd.read_excel('excel_data.xlsx', sheet_name='Sheet1')

大佬,第1行这句代码中,pd 是什么意思 ...

pandas  读取文件的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-4-13 22:25:25 | 显示全部楼层
haoliang9324 发表于 2021-4-13 18:14
df = pd.read_excel('excel_data.xlsx', sheet_name='Sheet1')

大佬,第1行这句代码中,pd 是什么意思 ...

pd?当然是 功夫熊猫呀,2333
import pandas as pd
pandas is a fast, powerful, flexible and easy to use open source data analysis and manipulation tool,
built on top of the Python programming language.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-4-13 22:38:40 | 显示全部楼层
本帖最后由 阿奇_o 于 2021-4-13 22:41 编辑
python鱼new 发表于 2021-4-13 18:11
大佬这里可以微调一下吗,不要合并单元格


取消合并,这估计pandas处理不来,openpyxl我不熟。。
跑步回来,查了查openpyxl,how to cancel the cell combined
然后,然后。。一个问题引发了若干个问题。。
嗯,最后代码看起来很简单,如:
wb = load_workbook('excel_data.xlsx')
ws = wb['Sheet2']  #我这是‘Sheet2’里的测试数据
# 拆分被合并了的单元格
ws.unmerge_cells('A3:A4')
ws['A4'] = ws['A3'].value   # 对拆分后的单元格(单个),进行填充指定的值(左上角第一个单元格保留有原合并值)
但,拆分后其他的单元格怎么批量赋值呢?。。花了不少时间。。
# 官网有提供下面这方法,可难用的很。。
# for row in ws.iter_rows(MIN_ROW=4, MAX_ROW=10, MAX_COLUMN=1):  
#     for cell in row:
#         print(cell)

# 版本原因这个糟糕的ws.iter_rows方法 还用不了(索性版本懒得换)
# 那还是用最简单的,一个个单元格处理
for i in range(4, 11):  #准备填充A4:A10(注:这是示范多个如何处理,你可能只需要填充A4一个)
    # print(f'A{i}:' , ws['A{}'.format(i)].value)
    ws[f'A{i}'].value = ws['A3'].value

wb.save('excel_data_Unmerged.xlsx')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-4-14 12:44:13 | 显示全部楼层
阿奇_o 发表于 2021-4-13 22:25
pd?当然是 功夫熊猫呀,2333
import pandas as pd

好的,知道啦,谢谢大佬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-4-14 12:44:48 | 显示全部楼层
python鱼new 发表于 2021-4-13 18:38
pandas  读取文件的

明白了,多谢~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-4-14 13:23:32 | 显示全部楼层
阿奇_o 发表于 2021-4-13 22:38
取消合并,这估计pandas处理不来,openpyxl我不熟。。
跑步回来,查了查openpyxl,how to cancel the  ...

厉害啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-4-14 13:38:17 | 显示全部楼层
阿奇_o 发表于 2021-4-13 22:38
取消合并,这估计pandas处理不来,openpyxl我不熟。。
跑步回来,查了查openpyxl,how to cancel the  ...

表格A3  B3 C3要拆分,我添加了2行 123.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-16 02:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表