In [186]: df = pd.DataFrame(np.triu(df, 1), columns=df.columns, index=df.index)
In [187]: df
Out[187]:
A B C D E
A 0.0 0.413454 0.615351 0.479720 0.342612
B 0.0 0.000000 0.568124 0.316543 0.361164
C 0.0 0.000000 0.000000 0.633183 0.790921
D 0.0 0.000000 0.000000 0.000000 0.450248
E 0.0 0.000000 0.000000 0.000000 0.000000
In [188]: df[df > 0.6].stack().reset_index()
Out[188]:
level_0 level_1 0
0 A C 0.615351
1 C D 0.633183
2 C E 0.790921
旧答案:
^{pr2}$
或者:In [99]: df[df > 0.6].stack().reset_index()
Out[99]:
level_0 level_1 0
0 A A 1.000000
1 A C 0.615351
2 B B 1.000000
3 C A 0.615351
4 C C 1.000000
5 C D 0.633183
6 C E 0.790921
7 D C 0.633183
8 D D 1.000000
9 E C 0.790921
10 E E 1.000000
数据集:In [100]: df
Out[100]:
A B C D E
A 1.000000 0.413454 0.615351 0.479720 0.342612
B 0.413454 1.000000 0.568124 0.316543 0.361164
C 0.615351 0.568124 1.000000 0.633183 0.790921
D 0.479720 0.316543 0.633183 1.000000 0.450248
E 0.342612 0.361164 0.790921 0.450248 1.000000