何:
私は、データフレームを持っています
A B C
True False False
False False True
True False False
False False False
私はそれのいずれかが成立しない場合には、真とNaNの場合は、列名を返します。「結果」という名前の列を取得したいです。
予想コラム
result
A
C
A
na
オリジナル:
あなたが使用することができるSeries.where
いずれかの列の値を設定するidxmax
第2の軸に沿って、第1のそれぞれの列名True
、又はNaN
、結果に応じてdf.any(1)
:
df['result'] = df.idxmax(1).where(df.any(1))
またはのためにnumpy
基づくものを使用できargmax
代わりに:
import numpy as np
df['result'] = np.where(df.values.any(1), df.columns[df.values.argmax(1)], np.nan)
print(df)
A B C result
0 True False False A
1 False False True C
2 True False False A
3 False False False NaN