我有一個資料框:
id 1 2 3 5
1 1 0.6 0.2 0.9
2 0.6 1 0.4 0.8
3 0.2 0.4 1 0.2
5 0.9 0.8 0.2 1
列是 id、1、2、3、5。我想從列 id 和其他值高于 0.7 的列中提取值對。所以想要的結果是:
id1 id2 value
1 5 0.9
2 5 0.8
怎么做?提前致謝
uj5u.com熱心網友回復:
你可以使用numpy.triu where:stack
import numpy as np
df = df.set_index('id')
out = df.where(np.triu(df.to_numpy()>0.7, k=1)).stack()\
.rename_axis(['id1','id2']).reset_index(name='value')
輸出:
id1 id2 value
0 1 5 0.9
1 2 5 0.8
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/455778.html
標籤:Python python-3.x 熊猫 数据框 功能
上一篇:如何找到兩個資料框之間的共同行?
下一篇:分配給Pandas中的分組資料框
