需求:excel中,可以通过数据透视表实现对数值数据进行求和汇总,但不能实现对同一字段对应的文本内容实现汇总,只能分行展示,有时候我们需要多行文本合并到同一单元格中,用复制粘贴方法难免效率低下,本文借助python实现自动汇总。
思路:读取excel内容——对汇总字段进去去重——读取汇总内容——合并写入excel。
案例:各地区农特产品内容汇总。
原始表格内容如下:
需要把”区域“列相同内容的值,合并到一行,用指定符号分隔。代码如下:
import pandas as pd
import numpy as np
excel_path="测试表.xlsx"
sheet_name="Sheet1"
usecols1="区域"
usecols2="特产"
dp1=pd.read_excel(excel_path,sheet_name="Sheet1",usecols=[usecols1,usecols2],keep_default_na=False).values.tolist()
dp2=set([i[0] for i in dp1 ])
result_all=[]
for i in dp2:
resulti = []
resultj = []
for j in dp1:
if i==j[0]:
resultj.append(j[1])
else:
continue
resulti=[i,"、".join(resultj)]
result_all.append(resulti)
dataframe=pd.DataFrame(np.array(result_all),columns=[usecols1,usecols2])
dataframe.to_excel("result.xlsx",index=False)
最终效果如下: