【发布时间】:2016-10-29 16:07:09
【问题描述】:
我有以下使用熊猫创建的相关矩阵:df.corr()
symbol aaa bbb ccc ddd eee
symbol
aaa 1.000000 0.346099 0.131874 -0.150910 0.177589
bbb 0.346099 1.000000 0.177308 -0.384893 0.301150
ccc 0.131874 0.177308 1.000000 -0.176995 0.258812
ddd -0.150910 -0.384893 -0.176995 1.000000 -0.310137
eee 0.177589 0.301150 0.258812 -0.310137 1.000000
从上面的数据框中,我需要将它转换成一个 3 列的数据框,如下所示:
aaa aaa 1.000000
aaa bbb 0.346099
aaa ccc 0.131874
aaa ddd -0.150910
aaa eee 0.177589
bbb aaa 0.346099
bbb bbb 1.000000
bbb ccc 0.177308
bbb ddd -0.384893
bbb eee 0.301150
ccc aaa 0.131874
ccc bbb 0.177308
ccc ccc 1.000000
ccc ddd -0.176995
ccc eee 0.258812
ddd aaa -0.150910
ddd bbb -0.384893
ddd ccc -0.176995
ddd ddd 1.000000
ddd eee -0.310137
eee aaa 0.177589
eee bbb 0.301150
eee ccc 0.258812
eee ddd -0.310137
eee eee 1.000000
如图所示,它是相同的数据,只是呈现方式不同。原始数据帧中的每一列/行对都简单地组合到新数据帧中的自己的行中。
不幸的是,我不知道如何在结果是数据框的情况下完成这项工作。我试过做df.stack(),但结果是Series。我需要它是一个数据框,以便我可以使用这些列。 df.stack() 的另一个问题是它没有填写每一行,这里是问题的一个小示例:
aaa aaa 1.000000
bbb 0.346099
ccc 0.131874
ddd -0.150910
eee 0.177589
bbb aaa 0.346099
bbb 1.000000
ccc 0.177308
ddd -0.384893
eee 0.301150
etc...
【问题讨论】:
标签: python pandas matrix dataframe reshape