我制作了一个corr数据框。
import pandas as pd
lst = [[1,2,3,4,5,6,7],
[10,15,20,25,50,55,60],
[20,50,1,4,29,351,1],
[-1,-20,-30,-45,-50,-55,-70]]
df = pd.DataFrame(lst, index = ['a','b','c','d']).T
corr = df.corr(method = 'pearson')
print(corr)
a b c d
a 1.000000 0.966282 0.347232 -0.983120
b 0.966282 1.000000 0.414710 -0.917002
c 0.347232 0.414710 1.000000 -0.247203
d -0.983120 -0.917002 -0.247203 1.000000
我想通过apply方法来改变。
a a 1.000000
a b 0.966282
a c 0.347232
a d 0.983120
b a 0.966282
b b 1.000000
....
如何使用Apply函数转换此数据框?
答案 0 :(得分:0)
将pandas.DataFrame.unstack()
与reset_index
一起使用:
corr.unstack().reset_index()
输出:
level_0 level_1 0
0 a a 1.000000
1 a b 0.966282
2 a c 0.347232
3 a d -0.983120
4 b a 0.966282
5 b b 1.000000
6 b c 0.414710
7 b d -0.917002
8 c a 0.347232
9 c b 0.414710
10 c c 1.000000
11 c d -0.247203
12 d a -0.983120
13 d b -0.917002
14 d c -0.247203
15 d d 1.000000