python - manejo - Selección de celdas pandas sin valor
seleccionar columnas de un dataframe pandas (2)
Llámalo así:
yes_records_sample[''name''].isnull()
Tengo una columna de un marco de datos de pandas que obtuve de una consulta de base de datos con celdas en blanco. Las celdas en blanco se convierten en "Ninguna" y quiero verificar si cada una de las filas es Ninguna:
In [325]: yes_records_sample[''name'']
Out[325]:
41055 John J Murphy Professional Building
25260 None
41757 Armand Bayou Nature Center
31397 None
33104 Hubert Humphrey Building
16891 Williams Hall
29618 None
3770 Covenant House
39618 None
1342 Bhathal Student Services Building
20506 None
Mi comprensión según la documentación es que puedo verificar si cada fila es nula con el isnull()
http://pandas.pydata.org/pandas-docs/dev/missing_data.html#values-considered-missing
Esa función, sin embargo, no está funcionando para mí:
In [332]: isnull(yes_records_sample[''name''])
Obtuve el siguiente error:
NameError Traceback (most recent call last)
<ipython-input-332-55873906e7e6> in <module>()
----> 1 isnull(yes_records_sample[''name''])
NameError: name ''isnull'' is not defined
También vi que alguien simplemente reemplazó las cadenas "Ninguna", pero ninguna de estas variaciones en ese enfoque funcionó para mí: Cambiar el nombre de "Ninguna" en Pandas
yes_records_sample[''name''].replace(''None'', "--no value--")
yes_records_sample[''name''].replace(None, "--no value--")
Finalmente pude usar la función fillna
y llenar cada una de esas filas con una cadena vacía yes_records_sample.fillna('''')
como solución alternativa y luego pude verificar yes_records_sample[''name'']==''''
Pero estoy profundamente confundido por cómo funciona ''ninguno'' y lo que significa. ¿Hay una manera de comprobar fácilmente si una celda en un marco de datos es ''Ninguna''?
No pude encontrar ninguna incorporada que haga exactamente esto, así que lo hago manualmente. En caso de Serie, el código es este:
import numpy as np
series = yes_records_sample[''name'']
n = np.empty_like(series)
n[...] = None
nones = series.values == n
En el caso de DataFrames, el código es muy similar:
import numpy as np
df = yes_records_sample
n = np.empty_like(df)
n[...] = None
nones = df == n
Mi problema con .isnull () es que no distingue entre NaN y Ninguno. Esto puede o no ser un problema en su aplicación.