您好,假设我有一个 df,例如:
G1 G2 VALUE
SP1 SP2 1
SP1 SP3 2
SP1 SP4 3
SP2 SP3 4
SP2 SP4 5
SP3 SP4 6
我怎样才能得到一个正方形的数据?(即,具有相同的行数和列数)
有类似的东西
data = [[0, 1, 2, 3],
[1, 0, 4, 5],
[9, 10, 0, 8, 7],
[2, 4, 0, 6],
[3, 5, 6, 0]]
ids = ['SP1','SP2','SP3','SP4]
dm = DistanceMatrix(data, ids) (function from skbio package)
并得到一个矩阵:
SP1 SP2 SP3 SP4
SP1 0 1 2 3
SP2 1 0 4 5
SP3 2 4 0 6
SP4 3 5 6 0
如果你们中的一些人熟悉它,我们怎么能做同样的事情但使用 1/2 矩阵:
SP1 0
SP2 1 0
SP3 2 4 0
SP4 3 5 6 0
SP1 SP2 SP3 SP4
(这里是 biopython 的 mor)非常感谢您的帮助
其他例子
d = {'G1': ['SP1','SP2','SP2'], 'G2': ['SP3','SP3','SP1'],'VALUE' :[1,2,3]}
df = pd.DataFrame(data=d)
我应该得到:
SP1 0
SP2 3 0
SP3 1 2 0
SP1 SP2 SP3
和
SP1 0 3 1
SP2 3 0 2
SP3 1 2 0
SP1 SP2 SP3