Pandas 处理 Excel 表格:合并相同工序和物料编码的行
可以使用 Pandas 库来实现这个需求。以下是一个可能的实现方式:
import pandas as pd
# 读取原始Excel文件
df = pd.read_excel('原始文件.xlsx')
# 根据列'工序'和'物料编码PS'进行分组,并计算相应的聚合值
df_ps = df.groupby(['工序', '物料编码PS']).agg({
'位置': lambda x: ','.join(set(x)),
'PS面积': 'sum',
'物料描述PS': lambda x: ','.join(set(x)),
'PS位置': lambda x: ','.join(set(x))
}).reset_index()
df_ps['工序'] = 'PS工序'
# 根据列'工序'和'物料编码SS'进行分组,并计算相应的聚合值
df_ss = df.groupby(['工序', '物料编码SS']).agg({
'位置': lambda x: ','.join(set(x)),
'SS面积': 'sum',
'物料描述SS': lambda x: ','.join(set(x)),
'SS位置': lambda x: ','.join(set(x))
}).reset_index()
df_ss['工序'] = 'SS工序'
# 将SS工序等于PS工序且物料编码PS等于物料编码SS的行进行合并
df_merged = pd.merge(df_ps, df_ss, left_on=['工序', '物料编码PS'], right_on=['工序', '物料编码SS'], how='inner')
df_merged['SS面积'] += df_merged['PS面积']
df_merged['物料描述SS'] = df_merged['物料描述SS'].fillna('') + ',' + df_merged['物料描述PS'].fillna('')
df_merged['物料描述SS'] = df_merged['物料描述SS'].apply(lambda x: ','.join(set(x.split(','))))
df_merged['位置'] = df_merged['SS位置'].fillna('') + ',' + df_merged['PS位置'].fillna('')
df_merged['位置'] = df_merged['位置'].apply(lambda x: ','.join(set(x.split(','))))
# 保存到新的Excel文件
df_merged.to_excel('新文件.xlsx', index=False)
请注意替换'原始文件.xlsx'和'新文件.xlsx'为实际的文件路径。此代码将根据提供的要求处理原始Excel文件,并将结果保存到一个新的Excel文件中。
原文地址: https://www.cveoy.top/t/topic/niDg 著作权归作者所有。请勿转载和采集!