合并含重叠客户键的pandas DataFrame 实现单客全业务评级单行列示
实现方法
你之前的拼接默认沿行方向堆叠,所以同个客户会产生多条记录,调整为以下两种方案即可得到预期结果:
方案1:沿列方向直接拼接(推荐,场景适配性高)
当每个DataFrame的评级列无重复、单个文件内同一客户无重复评级时,直接指定拼接轴为列即可自动按客户索引对齐:
import pandas as pd merged_df = pd.concat(frames, axis=1)
方案2:行拼接后分组聚合
如果已经生成了多行的拼接结果,或者单文件内存在同一客户的多条记录,可按客户索引分组后取非空值:
# 先沿行拼接,再按客户索引(level=0)分组,取每个列的第一个非空值 merged_df = pd.concat(frames).groupby(level=0).first()
注意事项
如果业务中存在同个客户在同一个业务单元下有多个不同评级的情况,可根据业务规则将.first()替换为.max()/.last()等聚合函数处理冲突。
内容的提问来源于stack exchange,提问作者el_oso
相关产品推荐
相关产品推荐

