在 Pandas 数据框中使索引和列成为同一组(它们的并集)

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

在我们的问题中,行(索引)和列属于同一类别的对象。我们想要放大一个 Pandas DataFrame,添加用 NaN 或预定义值填充的行和列,以便索引和列集现在都是原始索引和列集的并集。 例如。变换

A C
B 0 1
C 1 1

进入

A B C
A NaN NaN NaN
B 0 NaN 1
C 1 NaN 1

实际示例 - 构造有向图的邻接矩阵,其中顶点标签位于行和列中。在某个阶段,一些没有从它们/到它们的有向边缘的列和行将被填充。

核心问题是如何高效地做到这一点。作为一个如此基本的问题,感觉应该将其作为标准方法来实现。有吗

简单的解决方案是迭代索引和列中不属于其他集合的所有条目,并将列/行(分别)添加到数据帧中。

简单的 reindex 等的问题是我们同时扩大了数据框,并且缺失的值也可能位于其他列之间。

python pandas dataframe indexing adjacency-matrix
1个回答
0
投票

我会得到索引

union
reindex

idx = df.index.union(df.columns)
out = df.reindex(index=idx, columns=idx)
© www.soinside.com 2019 - 2024. All rights reserved.