2016-06-27 19 views
1

を再形成:上記データフレームから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... 

答えて

3

あなたはreset_indexを追加必要があります。

#reset columns and index names 
df = df.rename_axis(None).rename_axis(None, axis=1) 

#pandas bellow 0.18.0 
#df.columns.name = None 
#df.index.name = None 

print (df) 
      aaa  bbb  ccc  ddd  eee 
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 
df1 = df.stack().reset_index() 
#set column names 
df1.columns = ['a','b','c'] 
print (df1) 
     a b   c 
0 aaa aaa 1.000000 
1 aaa bbb 0.346099 
2 aaa ccc 0.131874 
3 aaa ddd -0.150910 
4 aaa eee 0.177589 
5 bbb aaa 0.346099 
6 bbb bbb 1.000000 
7 bbb ccc 0.177308 
8 bbb ddd -0.384893 
9 bbb eee 0.301150 
10 ccc aaa 0.131874 
11 ccc bbb 0.177308 
12 ccc ccc 1.000000 
13 ccc ddd -0.176995 
14 ccc eee 0.258812 
15 ddd aaa -0.150910 
16 ddd bbb -0.384893 
17 ddd ccc -0.176995 
18 ddd ddd 1.000000 
19 ddd eee -0.310137 
20 eee aaa 0.177589 
21 eee bbb 0.301150 
22 eee ccc 0.258812 
23 eee ddd -0.310137 
24 eee eee 1.000000 
関連する問題