python - 根据列值合并多个数据帧时缺少列

标签 python pandas dataframe merge

我有五个数据框,每个数据框都有唯一的列和一个公共(public)列id 号。假设每个数据框都有以下列:

  1. df1:身份证号、时间、日期、年龄、姓名。
  2. df2:身份证号、性别、地址、就业情况、出生日期。
  3. df3:ID号,......等等
  4. df4:身份证号码,......等等
  5. 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/

相关文章:

python - 从 Google Earth Engine 下载图片 `ImageCollection` 驱动

python - 按一列分组并找到 Pandas 中其他两列差异的最大(绝对)值

python - 如何将大量参数传递给 **kwargs

r - 编辑 R 列中的每一行

python - appium ios python "an error occured while executing user supplied javascript"

Python 实例变量作为默认参数

python - 用于重新训练示例中验证的 Tensorflow 混淆矩阵

python - Beautiful Soup 和 Pandas 提取物编号

r - 合并一些重复的行并对其中一列求和

r - 比较列并将输出放在附加列中