如何从 pandas 对称数据帧中提取元组
How to extract tuples from a pandas symmetric dataframe
我有一个表示对称矩阵的数据框:
a b c d
a 2 3 4
b 2 6 8
c 3 6 5
d 4 8 5
从我想去的地方:
[(a,b,2),(a,c,3),(a,d,4),(b,c,6),...]
是否有 pythonic/pandatic/ 代数方法或者我应该使用 for 循环?
谢谢。
df.unstack().reset_index().values
从某种意义上说,(a, b, 2)
和 (b, a, 2)
都将在列表中,这将保留重复项。然后您可以过滤 lambda t: t[0] < t[1]
.
我有一个表示对称矩阵的数据框:
a b c d
a 2 3 4
b 2 6 8
c 3 6 5
d 4 8 5
从我想去的地方:
[(a,b,2),(a,c,3),(a,d,4),(b,c,6),...]
是否有 pythonic/pandatic/ 代数方法或者我应该使用 for 循环?
谢谢。
df.unstack().reset_index().values
从某种意义上说,(a, b, 2)
和 (b, a, 2)
都将在列表中,这将保留重复项。然后您可以过滤 lambda t: t[0] < t[1]
.