cómo obtener el nombre de columna en columna múltiple en uno si es en cierto pyhton?

qué:

i tiene un marco de datos

A     B      C    
True  False  False
False False  True
True  False  False
False False  False

Quiero llegar columna denominada "resultado" que devolverá el nombre de la columna si es verdad y Nan, si alguna de que no es cierto.

columna espera

result
A
C
A  
na
el original:

Se podría utilizar Series.wherepara establecer el valor de la columna ya sea a la idxmaxlargo del segundo eje, por lo que el respectivo nombre de la columna de la primera True, o NaN, en función del resultado de df.any(1):

df['result'] = df.idxmax(1).where(df.any(1))

O para un numpyuno basado puede utilizar argmaxen su lugar:

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

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=402497&siteId=1
Recomendado
Clasificación