如何使用reduce函数合并多个dataframe并按原表名重命名列
合并多DataFrame并按来源加后缀的实现方法
- 依赖环境:Python + pandas库
- 实现代码:
import pandas as pd from functools import reduce # 1. 配置月份DataFrame与对应后缀的映射,可按实际需求调整后缀命名 df_suffix_map = { "_jul": july_df, "_aug": aug_df, "_sep": sep_df, "_oct": oct_df, "_nov": nov_df, "_dec": dec_df, "_jan": jan_df, "_feb": feb_df, "_mar": mar_df, "_apr": apr_df, "_may": may_df, "_jun": june_df } processed_df_list = [] for suffix, df in df_suffix_map.items(): temp_df = df.copy() # 仅给非关联键的列添加对应来源后缀,避免修改关联键字段名 temp_df.columns = ["MINISTRY"] + [f"{col}{suffix}" for col in temp_df.columns if col != "MINISTRY"] processed_df_list.append(temp_df) # 2. 按MINISTRY字段关联合并所有处理后的表 # *如果不需要保留所有出现过的MINISTRY值,可将how参数改为'inner'使用内连接 merged_result = reduce(lambda left, right: pd.merge(left, right, on="MINISTRY", how="outer"), processed_df_list)
- 输出效果:最终得到的
merged_result列结构和你给出的示例完全匹配,首列为关联键MINISTRY,后续所有指标列均按来源表添加对应月份后缀。
内容的提问来源于stack exchange,提问作者TJB
相关产品推荐
相关产品推荐

