我如何在另一列中使用weigth做交叉表?

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

您好,我有以下代码,以便做一个邻接矩阵,但是我在另一列中有按同等权重,如何用此数据在熊猫中建立邻接矩阵?

当前代码:

ady = pd.read_csv("edges.csv", sep=',')[['Source', 'Target', 'weight']]
ady['weight'] = pd.to_numeric(ady['weight'])
ady = pd.crosstab(ady.Source, ady.Target, ady.weight, aggfunc = sum)

数据:

Source, Target, weight
a,a,0
a,b,2
a,c,1
b,a,2
b,b,1
b,c,0
c,a,1
c,b,0
c,c,0

预期数据:

  a,b,c
a 0,2,1
b 2,1,0
c 1,0,0

dtypes:

ady.dtypes
Source     object
Target     object
weight    float64

原始数据:https://pastebin.com/Y55a64yz

任何想法?

谢谢

python pandas
1个回答
0
投票

您可以简单地pivotadiDataFrame:

adi.pivot(*adi.columns)

给予:

Target  a  b  c
Source         
a       0  2  1
b       2  1  0
c       1  0  0
© www.soinside.com 2019 - 2024. All rights reserved.