>>> nms
movie name rating
0 thg John 3
1 thg NaN 4
3 mol Graham NaN
4 lob NaN NaN
5 lob NaN NaN
¿Cómo filtraría NaN valores para que pueda obtener resultados con los que trabajar de esta manera:
movie name rating
0 thg John 3
3 mol Graham NaN
Supongo que necesito algo como ~np.isnan pero la tilda no funciona con cuerdas.
d.f.[df.name.notnull()]
– min2bro
31 de enero a las 6:36
EdChum
Solo déjalos:
nms.dropna(thresh=2)
esto eliminará todas las filas donde hay al menos dos no-NaN.
Entonces podrías soltar donde está el nombre NaN:
In [87]:
nms
Out[87]:
movie name rating
0 thg John 3
1 thg NaN 4
3 mol Graham NaN
4 lob NaN NaN
5 lob NaN NaN
[5 rows x 3 columns]
In [89]:
nms = nms.dropna(thresh=2)
In [90]:
nms[nms.name.notnull()]
Out[90]:
movie name rating
0 thg John 3
3 mol Graham NaN
[2 rows x 3 columns]
EDITAR
En realidad, mirando lo que originalmente quiere, puede hacer esto sin el dropna llamar:
nms[nms.name.notnull()]
ACTUALIZAR
Mirando esta pregunta 3 años después, hay un error, en primer lugar thresh arg busca al menos n no-NaN valores por lo que, de hecho, la salida debería ser:
In [4]:
nms.dropna(thresh=2)
Out[4]:
movie name rating
0 thg John 3.0
1 thg NaN 4.0
3 mol Graham NaN
Es posible que me haya equivocado hace 3 años o que la versión de pandas que estaba ejecutando tuviera un error, ambos escenarios son completamente posibles.
Gil Baggio
La más simple de todas las soluciones:
filtered_df = df[df['name'].notnull()]
Por lo tanto, filtra solo las filas que no tienen valores de NaN en la columna ‘nombre’.
Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos.
Configurar y más información
d.f.[df.name.notnull()]
– min2bro
31 de enero a las 6:36