我有一个以 ID 作为列名和行名的距离矩阵:
A B C D
A 0 1 2 3
B 1 0 4 5
C 2 4 0 6
D 3 5 6 0
如何有效地从大型矩阵中提取值,例如为 ID A 和 C 获取此矩阵:
A C
A 0 2
C 2 0
编辑,矩阵中缺失的 ID 应该被忽略。
最佳答案
使用DataFrame.loc
通过标签获取值:
vals = ['A','C']
df = df.loc[vals, vals]
print (df)
A C
A 0 2
C 2 0
编辑:如果某些值不匹配并且需要省略它们,请添加 Index.intersection
:
vals = ['J','A','C']
new = df.columns.intersection(vals, sort=False)
df = df.loc[new, new]
print (df)
A C
A 0 2
C 2 0
关于python - Pandas 从距离矩阵中按 ID 提取列和行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65288185/