我有五个数据框,每个数据框都有唯一的列和一个公共(public)列id 号。假设每个数据框都有以下列:
- df1:身份证号、时间、日期、年龄、姓名。
- df2:身份证号、性别、地址、就业情况、出生日期。
- df3:ID号,......等等
- df4:身份证号码,......等等
- df5:身份证号码,......等等
我使用了以下合并:
first1 = pd.merge(df1, df2, how= 'left', on = 'id_no')
first2 = pd.merge(first1, df3, how= 'left', on = 'id_no')
first3 = pd.merge(first2, df4, how= 'left', on = 'id_no')
combineall = pd.merge(first3, df5, how= 'left', on = 'id_no')
问题: combineall 数据框中缺少 df3 的列。虽然当我单独打印 df3 时,我看到了所有可用的内容。我的 df3 在合并过程中如何丢失?我是否可以让这个过程变得更容易并且问题更少。
目标: 我想要将 df1、df2、df3、df4、df5 中的所有列基于 id_no 合并到 comabinall 数据框。
最佳答案
试试这个:
from functools import reduce
finaldf = reduce(lambda left,right: pd.merge(left, right, on='id_no', how='left'), [df1,df2,df3,df4,df5])
关于python - 根据列值合并多个数据帧时缺少列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48899550/