I need to convert a matriz (below) into a 3 column list.
I currently have a DataFrame as this:
     A   B   C  ...
a    1   3   4  ...
b    4   0   6  ...
c    9   8   0  ...
and I need to get a results as this:
Source   Target    Weight
  a        A          1
  a        B          3
  a        C          4
  b        A          4
  b        C          6
  c        A          9
  c        B          8
I've been trying to use pandas.pivot_table function, but I can't get the result needed.
you can use DataFrame.stack() method:
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
                        I was thinking about using pd.melt() :
pd.melt(df.reset_index(), id_vars=['index'], value_vars=['A', 'B', 'C'], var_name='Target', value_name='Weight')
It won't give you exactly what you want but it might be good to know :
      index Target  Weight
0     a      A     1.0
1     b      A     4.0
2     c      A     9.0
3     a      B     3.0
4     b      B     0.0
5     c      B     8.0
...
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With