两个数据帧的索引和列的联合

问题描述 投票:2回答:1

我不确定它是否是正确的表达式,但搜索合并或更改索引并没有让我任何地方。基本上我有两个数据帧:

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])

我想转换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
python pandas indexing union
1个回答
3
投票

你可以使用.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)

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

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
© www.soinside.com 2019 - 2024. All rights reserved.