使用Python合并Excel表格并添加自定义列的核心方法为利用pandas库实现多表数据整合,通过DataFrame操作高效添加新字段,具体亮点包括:支持xls/xlsx格式兼容、批量处理数百个文件、灵活定义列计算逻辑。
- 环境准备与数据读取
安装pandas库与openpyxl引擎:plaintext复制,通过pip install pandas openpyxl
plaintext复制读取单个文件,使用pd.read_excel()
plaintext复制模块匹配目录下所有Excel文件。示例代码:glob
python复制import pandas as pd import glob all_files = glob.glob(" 销售数据/*.xlsx") df_list = [pd.read_excel(f) for f in all_files]
- 表格合并与列追加
采用plaintext复制纵向堆叠数据,运用pd.concat()
plaintext复制方法动态生成新列。如需根据已有列计算,可直接进行矢量运算:assign()
python复制combined_df = pd.concat(df_list, ignore_index=True) combined_df = combined_df.assign( 销售季度=lambda x: pd.to_datetime(x[' 日期']).dt.quarter, 是否达标=lambda x: x['销售额'] > 10000 )
- 高级列处理技巧
- 条件判断列:结合plaintext复制实现分支逻辑
np.where()
python复制import numpy as np combined_df['评级'] = np.where(combined_df[' 销售额']>15000, 'A', 'B')
- 分组统计列:使用plaintext复制生成分组排名
groupby()+transform()
python复制combined_df['区域排名'] = combined_df.groupby(' 大区')['销售额'].rank(ascending=False)
- 输出与格式优化
通过plaintext复制输出时,使用to_excel()
plaintext复制设置单元格格式:ExcelWriter
python复制with pd.ExcelWriter('合并结果.xlsx', engine='openpyxl') as writer: combined_df.to_excel(writer, index=False) # 自动调整列宽 for column in writer.sheets['Sheet1'].columns: max_length = max(len(str(cell.value)) for cell in column) writer.sheets['Sheet1'].column_dimensions[column[[0]().column_letter].width = max_length + 2
实际应用中需注意:2025年新版pandas已原生支持xlsb格式读取,处理10万+行数据时建议启用
dtype=‘category’
openpyxl的merged_cells属性