我有一個包含標準化值的數據框。我可以從每一行獲取最大值,但現在我還想獲取相應的列名稱。例如 df:|----------------------------------------|| a | b | c | 'newcol' ||----------------------------------------|| 0.960 | 1.00 | 1.00 | b, c ||----------------------------------------|| 0.922 | 0.955 | 0.971 | c ||----------------------------------------|所以我想創建這個 newcol 包含具有最大值的列名。我已經嘗試過df.idxmax(axis=1),但是這僅返回具有最大值的第一列查找 Pandas DataFrame 中最大的所有索引嘗試解決相同的問題,但是數據存儲在列表中而不是同一 df 中的新列中
1 回答

狐的傳說
TA貢獻1804條經驗 獲得超3個贊
用于DataFrame.dot
將所有列與最大值進行比較:
df['newcol'] = df.eq(df.max(axis=1), axis=0).dot(df.columns + ',').str.strip(',')
print (df)
? ? ? ?a? ? ? b? ? ? c newcol
0? 0.960? 1.000? 1.000? ? b,c
1? 0.922? 0.955? 0.971? ? ? c
添加回答
舉報
0/150
提交
取消