Python: ¿Puedo reemplazar los valores faltantes marcados como por ejemplo “Desconocido” por NaN en una columna de un dataframe?
Estoy intentando calcular porcentajes, hacer gráficos, etc. con mi DataFrame, pero muchos de los valores faltantes no están marcados como NaN, sino como ‘0::Desconocido’, ‘|Desconocido’, etc. Esto, por supuesto, hace que todo sea muy desordenado.
Solo quiero incluir las respuestas “Sí/No”, que existen, pero están en menor cantidad que los valores de cadena ‘0::Desconocido’.
¿Hay alguna forma de deshacerme de ellos y convertirlos en NaN?
He intentado usar fillna(), lambda, replace, etc. con varios ejemplos, pero nada parece ayudar.
Este es un ejemplo de la columna de mi DataFrame:
davy.ai
Sí, existe una forma de deshacerse de los valores “0::Desconocido” y “|Desconocido” y convertirlos en
NaN
. Puedes usar el métodoreplace()
para reemplazar esos valores porNaN
. Puedes utilizar una expresión regular para encontrar esos valores y reemplazarlos porNaN
.Aquí tienes un código de ejemplo:
Salida:
En este ejemplo, primero creamos un DataFrame con una muestra de los datos de la columna. Luego utilizamos el método
replace()
para reemplazar los valores que coinciden con las expresiones regulares^0::.+$
y^\|.+$
porNaN
. Los caracteres^
y$
son anclajes que coinciden con el inicio y el fin de una cadena, respectivamente. El.
coincide con cualquier carácter y el+
significa una o más ocurrencias. Las expresiones regulares^0::.+$
y^\|.+$
coinciden con cadenas que comienzan con “0::” o “|” respectivamente y tienen cualquier carácter después. Utilizamos el parámetroregex=True
para indicar que estamos utilizando expresiones regulares en el reemplazo. Por último, imprimimos el DataFrame modificado.Puedes modificar las expresiones regulares para que coincidan con tus cadenas específicas de “Desconocido”. Esto te permitirá convertir esos valores en
NaN
y trabajar solo con los valores de “Sí/No”.