pyhtonでその真の場合は、1つに複数の列から列名を取得する方法?

何:

私は、データフレームを持っています

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

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=402494&siteId=1