两个数据框的索引和列的并集

ian*_*han 3 python indexing union pandas

我不确定这是否是正确的表达方式,但是搜索合并或更改索引并没有帮助我。基本上我有两个数据框:

df_A = pd.DataFrame(1, index=[1,2,3], columns = [1,2,3])
df_B = pd.DataFrame(0, index=[1,2,4], columns = [1,2,5])
Run Code Online (Sandbox Code Playgroud)

我想对df_A和df_B进行转换,使它们共享相同的索引和列,这是两者的并集。缺少的值将用NaN填充:

df_A_new:
          1    2    3    5
index
1         1    1    1   NaN
2         1    1    1   NaN
3         1    1    1   NaN
4        NaN  NaN  NaN  NaN

df_B_new:
          1    2    3    5
index
1         0    0   NaN   0
2         0    0   NaN   0
3        NaN  NaN  NaN  NaN
4         0    0   NaN   0
Run Code Online (Sandbox Code Playgroud)

Ale*_*lex 5

您可以使用.union.reindex

rows = df_A.index.union(df_B.index)
cols = df_A.columns.union(df_B.columns)

df_A_new = df_A.reindex(index=rows, columns=cols)
df_B_new = df_B.reindex(index=rows, columns=cols)
Run Code Online (Sandbox Code Playgroud)

df_A_new 看起来像

     1    2    3   5
1  1.0  1.0  1.0 NaN
2  1.0  1.0  1.0 NaN
3  1.0  1.0  1.0 NaN
4  NaN  NaN  NaN NaN
Run Code Online (Sandbox Code Playgroud)

df_B_new 看起来像:

     1    2   3    5
1  0.0  0.0 NaN  0.0
2  0.0  0.0 NaN  0.0
3  NaN  NaN NaN  NaN
4  0.0  0.0 NaN  0.0
Run Code Online (Sandbox Code Playgroud)