合并两个具有不同列数和顺序的数据框(熊猫)

时间:2021-07-06 08:03:18

标签: python pandas merge

我在合并 Pandas 中具有不同列(一些常见列,但数量不同)的两个数据帧时遇到问题。这些公共列的顺序是不一样的。例如:

df1
   A B C                                                     
R1 1 2 3
R2 2 1 2
R3 1 1 1

df2
   B C                                                 
R1 2 1
R2 1 1

我希望结果是:

df1
   A B C                                                     
R1 1 2 3
R2 2 1 2
R3 1 1 1
R4 N 2 1
R5 N 1 1

(N = NULL)

有很多列 (>100) 所以我不想手动输入列名。我该怎么办?

1 个答案:

答案 0 :(得分:1)

首先将df2的索引更新为与df1的索引连续:

df2.index = ['R' + str(i + 1) for i in range(len(df1), len(df1) + len(df2))]

现在,我们可以使用 concat 连接列名后面的两个数据框:

pd.concat([df1, df2])

结果:

      A  B  C
R1  1.0  2  3
R2  2.0  1  2
R3  1.0  1  1
R4  NaN  2  1
R5  NaN  1  1