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