合并两个具有不同列数和顺序的数据框 (pandas)
Merging two dataframes with different number & order of columns (pandas)
我在 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),所以我不想手动输入列名。我该怎么做?
首先,将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
我在 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),所以我不想手动输入列名。我该怎么做?
首先,将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