Python 匹配数据帧结构
我有两个数据帧,如下所示:Python 匹配数据帧结构,python,pandas,dataframe,Python,Pandas,Dataframe,我有两个数据帧,如下所示: d = {'var1': [1, 2, 3, 4], 'var2': [5, 6, 7, 8], 'var3': [9, 10, 11, 12]} df = pd.DataFrame(data=d) df var1 var2 var3 0 1 5 9 1 2 6 10 2 3 7 11 3 4 8 12 及 我希望df2具有与原始df相同的列和列顺序
d = {'var1': [1, 2, 3, 4], 'var2': [5, 6, 7, 8], 'var3': [9, 10, 11, 12]}
df = pd.DataFrame(data=d)
df
var1 var2 var3
0 1 5 9
1 2 6 10
2 3 7 11
3 4 8 12
及
我希望df2具有与原始df相同的列和列顺序
因此,结果如下所示:
df2
var1 var2 var3
0 1 5 NaN
1 2 7 NaN
2 3 7 NaN
我知道我可以在本例中手动分配一个名为“var3”的新列,并将其值设置为NaN,但我正在寻找一种通用解决方案,在这种解决方案中,需要对具有多个列的多个数据帧执行此操作。尝试使用
reindex
:
df2.reindex(df.columns, axis=1)
输出:
var1 var2 var3
0 4 5 NaN
1 1 7 NaN
2 3 7 NaN
使用
align
df2,_=df2.align(df,axis=1)
df2
Out[190]:
var1 var2 var3
0 4 5 NaN
1 1 7 NaN
2 3 7 NaN
for n in (set(df.columns) - set(df2.columns)):
df2[str(n)] = np.NaN
df2,_=df2.align(df,axis=1)
df2
Out[190]:
var1 var2 var3
0 4 5 NaN
1 1 7 NaN
2 3 7 NaN