python - 如何使用 PANDAS/Python 将矩阵转换为列数组

标签 python arrays pandas matrix dataframe

我需要将矩阵(如下)转换为 3 列列表。

我目前有这样一个 DataFrame:

     A   B   C  ...
a    1   3   4  ...
b    4   0   6  ...
c    9   8   0  ...

我需要得到这样的结果:

Source   Target    Weight
  a        A          1
  a        B          3
  a        C          4
  b        A          4
  b        C          6
  c        A          9
  c        B          8

我一直在尝试使用 pandas.pivot_table 函数,但无法获得所需的结果。

最佳答案

你可以使用DataFrame.stack()方法:

In [335]: df.stack().reset_index().rename(columns={'level_0':'Source','level_1':'Target', 0:'Weight'})
Out[335]:
  Source Target  Weight
0      a      A       1
1      a      B       3
2      a      C       4
3      b      A       4
4      b      B       0
5      b      C       6
6      c      A       9
7      c      B       8
8      c      C       0

关于python - 如何使用 PANDAS/Python 将矩阵转换为列数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41474284/

相关文章:

python - Pandas :将 int 系列转换为新的 StringDtype

python - 如何在一列中查找具有相同值但在另一列中具有不同值的记录

python - 在python中存储带有键和键的多值的字典的问题

c - 互动故事节目

javascript - 将数组分成数组数组,如何在尾递归中进行?

python - 为什么使用 DataFrameGroupBy.agg 时可以访问传递给聚合函数的系列中的所有数据帧列?

python - 检测图像中不均匀照明的稳健算法[仅需要检测]

python - 通过接受替换函数作为参数,允许在 __init__ 期间重写对象方法

javascript - 如何在 session 存储中使用相同的键更新数组

python - 使用数据透视表 pandas 后如何摆脱多级索引?