我有一个数据框
from to Amt
a b 100
a c 200
a d 220
b a 250
b c 300
b d 330
c a 100
c b 120
c d 320
d a 211
d b 980
d c 430
我想用矩阵的形式来表示
a b c d
a 0 100 200 220
b 250 0 300 330
c 100 120 0 320
d 211 980 430 0
。。
。
最佳答案
。这是一个例子。
pivot_df = df.pivot(index='from', columns='to', values='Amt')
对于手动之前进行分数计算,可以使用
groupby()
然后transform('sum')
。。df['sums'] = df.groupby('from')['amt'].transform('sum')
df['frac'] = df['amt'] / df['sums']
df.pivot(index='from', columns='to', values='frac')