python - python中 Pandas 数据框的矩阵表示

标签 python pandas matrix pivot dataframe

我有一个类似的数据框

 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

如何实现......

我关注了Printing Lists as Tabular Data链接。但没有得到我想要的东西。

最佳答案

您需要旋转数据。这是一个例子。

pivot_df = df.pivot(index='from', columns='to', values='Amt')

要预先进行小数计算,您可以使用 groupby(),然后使用 transform('sum')。它类似于 SQL 窗口函数求和。

df['sums'] =  df.groupby('from')['amt'].transform('sum')
df['frac'] = df['amt'] / df['sums']
df.pivot(index='from', columns='to', values='frac')

关于python - python中 Pandas 数据框的矩阵表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34488063/

相关文章:

python - 如何在python中将网页转换为pdf,就像打印中的另存为pdf选项一样

python - pandas框架下如何减少一个字符串最长的数据?

Matlab:具有不同参数的移动总和(回溯期)

javascript - 如何将鼠标移动距离转换为 SVG 坐标空间?

python - 使用 MySQLdb 的嵌套查询

python - 如何在 Python 中解析维基百科页面?

python - 在 pandas python 列中获取非数字行

python - 在一列上使用多个条件来分配新列的值

c++ - 二维矩阵和重载运算符()/丑陋的语法

python - 基于输入行的 pandas long_to_wide 方法