df,df2和df3为例,其中有一些重叠的列。
>>> df
A B C
0 3 4 3
1 1 1 4
2 4 4 4
3 2 3 2
4 1 0 3
>>> df2
A B C D
0 1 0 2 2
1 3 3 2 3
2 0 0 1 1
3 0 0 1 1
4 1 0 2 2
>>> df3
A B C D F
0 2 2 0 1 1
1 4 3 3 0 3
2 0 4 0 0 0
3 0 2 2 1 0
4 4 2 4 1 1
找到那些缺少的列,并将它们添加到具有NAN值的每个df中
预期结果:
>>> df
A B C D F
0 3 4 3 nan nan
1 1 1 4 nan nan
2 4 4 4 nan nan
3 2 3 2 nan nan
4 1 0 3 nan nan
>>> df2
A B C D F
0 1 0 2 2 nan
1 3 3 2 3 nan
2 0 0 1 1 nan
3 0 0 1 1 nan
4 1 0 2 2 naa
df3是
答案 0 :(得分:1)
您可以检查reindex
df=df.reindex(columns=df3.columns)
df
Out[18]:
A B C D F
0 3 4 3 NaN NaN
1 1 1 4 NaN NaN
2 4 4 4 NaN NaN
3 2 3 2 NaN NaN
4 1 0 3 NaN NaN
更新
l=df.columns.tolist()+df2.columns.tolist()+df3.columns.tolist()
df=df.reindex(columns=set(l))
答案 1 :(得分:1)
这是DataFrame.align
的好用例:
df1, _ = df1.align(df3)
df2, _ = df2.align(df3)
df1
A B C D F
0 3 4 3 NaN NaN
1 1 1 4 NaN NaN
2 4 4 4 NaN NaN
3 2 3 2 NaN NaN
4 1 0 3 NaN NaN
df2
A B C D F
0 1 0 2 2 NaN
1 3 3 2 3 NaN
2 0 0 1 1 NaN
3 0 0 1 1 NaN
4 1 0 2 2 NaN