可以使用 Pandas 库来实现上述需求。

首先,我们需要读取原始的 Excel 文件,并将其转换为 Pandas 的 DataFrame 对象:

import pandas as pd

# 读取 Excel 文件
df = pd.read_excel('input.xlsx')

然后,根据列工序的值和物料编码 PS 的值对 DataFrame 进行分组,并对相应的列进行合并和求和操作:

# 根据列工序的值和物料编码 PS 的值进行分组
ps_grouped = df.groupby(['工序', '物料编码PS'])

# 合并位置的值,并去除重复值
df['位置'] = ps_grouped['位置'].transform(lambda x: ','.join(set(x)))

# 合并物料描述 PS 的值,并去除重复值
df['物料描述PS'] = ps_grouped['物料描述PS'].transform(lambda x: ','.join(set(x)))

# 求和 PS 面积的值
df['PS面积'] = ps_grouped['PS面积'].transform('sum')

# 修改工序列为 PS 工序
df['工序'] = 'PS工序'

# 修改位置列为 PS 位置
df.rename(columns={'位置': 'PS位置'}, inplace=True)

接下来,对物料编码 SS 的值进行类似的操作:

# 根据列工序的值和物料编码 SS 的值进行分组
ss_grouped = df.groupby(['工序', '物料编码SS'])

# 合并位置的值,并去除重复值
df['位置'] = ss_grouped['位置'].transform(lambda x: ','.join(set(x)))

# 合并物料描述 SS 的值,并去除重复值
df['物料描述SS'] = ss_grouped['物料描述SS'].transform(lambda x: ','.join(set(x)))

# 求和 SS 面积的值
df['SS面积'] = ss_grouped['SS面积'].transform('sum')

# 修改工序列为 SS 工序
df['工序'] = 'SS工序'

# 修改位置列为 SS 位置
df.rename(columns={'位置': 'SS位置'}, inplace=True)

最后,根据 PS 工序和 SS 工序的值,将 DataFrame 拆分为两个工作簿,并保存到新的 Excel 文件中:

# 创建一个新的 Excel 文件
writer = pd.ExcelWriter('output.xlsx', engine='xlsxwriter')

# 将 PS 工序的数据保存到新的工作簿中
df[df['工序'] == 'PS工序'].to_excel(writer, sheet_name='PS工作簿', index=False)

# 将 SS 工序的数据保存到新的工作簿中
df[df['工序'] == 'SS工序'].to_excel(writer, sheet_name='SS工作簿', index=False)

# 保存 Excel 文件
writer.save()

最后得到的output.xlsx文件中将包含两个工作簿,分别为"PS工作簿"和"SS工作簿",其中包含了经过处理和合并后的数据。

使用 Pandas 合并和处理 Excel 数据,并生成新的工作簿

原文地址: https://www.cveoy.top/t/topic/nidZ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录