我有以下熊貓資料框:
AA BB CC DD EE
----------------------------------
0 1 12 4 3 5
1 5 7 28 7 4
2 9 7 9 2 6
我想添加一個新列(“MM”)并將其設定為每行中兩個最大值的列名串列,對于上述資料框,輸出應為:
AA BB CC DD EE MM
-------------------------------------------------
0 1 12 4 3 5 ['BB','EE']
1 5 7 28 7 4 ['CC','DD','BB']
2 9 7 9 2 6 ['AA','CC']
在第一行中,兩個最大值是:12,5('BB' 和 'EE' 列)
我怎樣才能做到這一點 ?
謝謝
uj5u.com熱心網友回復:
您可以使用applywithnlargest和keep='all'引數來保留重復項:
df['MM'] = df.apply(lambda r: r.nlargest(2, keep='all').index.values, axis=1)
輸出:
AA BB CC DD EE MM
0 1 12 4 3 5 [BB, EE]
1 5 7 28 7 4 [CC, BB, DD]
2 9 7 9 2 6 [AA, CC]
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/360261.html
上一篇:如何在列上添加標題
下一篇:將資料幀列拆分為R中的向量
