【发布时间】:2021-09-12 03:00:13
【问题描述】:
我有一个成对距离的熊猫数据框,格式为:
SampleA SampleB Num_Differences
0 sample_1 sample_2 1
1 sample_1 sample_3 4
2 sample_2 sample_3 8
请注意,没有自我比较(例如,不会表示 sample_1 与 sample_1)。我想将此表转换为方形距离矩阵,如下所示:
sample_1 sample_2 sample_3
sample_1 1 4
sample_2 1 8
sample_3 4 8
谁能给我一些关于如何在 python 中进行这种转换的指示?该问题类似于R中的上一个问题(Converting pairwise distances into a distance matrix in R),但我不知道要使用的相应python函数。这个问题似乎也与这个问题相反(Convert a distance matrix to a list of pairwise distances in Python)。
以我正在使用的形式重现数据帧的一些代码:
df = pd.DataFrame([['sample_1', 'sample_2', 1],
['sample_1', 'sample_3', 4],
['sample_2', 'sample_3', 8]],
columns=['SampleA', 'SampleB', 'Num_Differences'])
谢谢!
【问题讨论】:
-
我有点不清楚。 R 问题的链接似乎只是重塑了数据,但您似乎正在执行一些反向计算以在
1 4 8的输出中获得 2 和 6。您怎么知道要使用什么结果,因为可能存在无限的减法运算,可能会产生1 4 8的距离。 -
对缺乏明确性表示歉意。我实际上并不想进行计算,只是将数据从“熔融”/长格式重塑为矩阵形式。也许我没有使用正确的术语。我还编辑了问题以修正数字 - 它们是我最初使用的一个更复杂的示例遗留下来的 - 哎呀。
标签: python pandas matrix pairwise