Comparar valor de la columna a un int en la trama de datos con el pitón

votos
0

Tengo un DFRAME trama de datos y quiero iterar a través de líneas de mi número de la columna si el número <5, entonces mi estado toma el valor de la columna 'vv' si el número está entre [5..17] así que mi valor de mi columna ESTADO toma 'xx '. ESTADO persona toma 'yy'. Así que escribí este código, pero no funciona ..

CUALQUIER ayuda por favor.

gracias `

for it in dframe['number']:
        if (it < 5):
            dframe['STATE'] = 'vv'
        elif (it >= 5 & it < 17):
            dframe['STATE'] = 'xx' 
        else: 
            dframe['STATE'] = 'yy'`
Publicado el 07/11/2018 a las 22:42
fuente por usuario
En otros idiomas...                            


2 respuestas

votos
0

Usted puede hacer esto en una línea con una lista por comprensión:

dframe['STATE'] = ['vv' if (i < 5) else 'xx' if (i >= 5) & (i < 17) else 'yy' for i in dframe['number']]
Respondida el 07/11/2018 a las 22:59
fuente por usuario

votos
0

A continuación código debe trabajar para usted.

dframe['state']=''
dframe.loc[dframe['number'] <5, 'state'] = 'vv'
dframe.loc[(dframe['number'] >5) & (dframe['number']<17), 'state'] = 'xx'
dframe.loc[dframe['state'] =='', 'state'] = 'yy'
Respondida el 07/11/2018 a las 22:49
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more