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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了两个数据帧的索引和列的联合相关的知识,希望对你有一定的参考价值。

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

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
答案

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

以上是关于两个数据帧的索引和列的联合的主要内容,如果未能解决你的问题,请参考以下文章

执行涉及索引和列的熊猫连接的最简洁方法

合并具有不同索引的两个数据帧,同时使用一行代码保留主数据帧的索引

在python中合并具有不同长度和列的数据框列表

我需要以相同的随机方式随机打乱两个熊猫数据帧的行

SQL联合索引 与 单一列的索引

使用 django html 模板创建具有动态行和列的表