excel文件,Sheet1和Sheet2格式一致,第一行为品名,第一列为部门。 将两个Sheet部门和品名相等时的单元格相加。生成新的表格。 用python实现。
时间: 2024-12-19 13:21:22 浏览: 3
matlab开发-比较excelsheet
要在Python中使用pandas库来处理Excel文件并实现这个需求,首先需要安装pandas和openpyxl库,如果还没有安装,可以使用pip命令:
```bash
pip install pandas openpyxl
```
然后,你可以按照以下步骤编写代码:
```python
import pandas as pd
# 读取第一个工作表(Sheet1)
df_sheet1 = pd.read_excel('your_file.xlsx', sheet_name='Sheet1')
# 读取第二个工作表(Sheet2)
df_sheet2 = pd.read_excel('your_file.xlsx', sheet_name='Sheet2')
# 检查两个数据框的列是否对齐,这里假设它们都只有一个部门列(假设列名为'Department')和一个品名列(假设列名为'Product')
assert df_sheet1.columns.get_loc('Department') == df_sheet2.columns.get_loc('Department'), 'Department columns are not aligned'
assert df_sheet1.columns.get_loc('Product') == df_sheet2.columns.get_loc('Product'), 'Product columns are not aligned'
# 创建一个新的DataFrame,合并两个数据框,并只保留部门和品名列,同时添加一个新的列'Sum',用于存储对应行的数值之和
new_df = pd.merge(df_sheet1[['Department', 'Product']], df_sheet2[['Department', 'Product']], on=['Department', 'Product'], how='outer').fillna(0)
new_df['Sum'] = new_df['Product_x'] + new_df['Product_y']
# 如果你想去掉原sheet名称作为列名,可以这样做:
new_df = new_df.rename(columns={'Product_x': 'Product1', 'Product_y': 'Product2'}).drop(['Department_x', 'Department_y'], axis=1)
# 写入新生成的表格到新的Excel文件(假设为'merged_data.xlsx')
new_df.to_excel('merged_data.xlsx', index=False)
阅读全文