Filtrar el contenido de las columnas con Python
Ya has visto cómo utilizar diversas operaciones con columnas de un Marco de Datos; ahora puedes modificar un conjunto de datos real. El DataFrame voter_df
contiene información sobre los votantes del Ayuntamiento de Dallas de los últimos años. Este DataFrame truncado contiene la fecha de emisión del voto y el nombre y cargo del votante. Tu jefe te ha pedido que limpies estos datos para poder integrarlos después en algunos informes deseados. La tarea principal es eliminar las entradas nulas o los caracteres extraños y devolver un conjunto específico de votantes donde puedas validar su información.
Éste suele ser uno de los primeros pasos en la limpieza de datos: eliminar todo lo que esté obviamente fuera del formato. Para este conjunto de datos, asegúrate de mirar los datos originales y ver lo que parece fuera de lugar para la columna VOTER_NAME
.
La biblioteca pyspark.sql.functions
ya está importada con el alias F
.
Este ejercicio forma parte del curso
Limpiar datos con PySpark
Instrucciones del ejercicio
- Muestra las distintas entradas de
VOTER_NAME
. - Filtra
voter_df
cuandoVOTER_NAME
tenga entre 1 y 20 caracteres de longitud. - Filtra los
voter_df
en los que elVOTER_NAME
contenga un_
. - Vuelve a mostrar las distintas entradas de
VOTER_NAME
.
Ejercicio interactivo práctico
Prueba este ejercicio completando el código de muestra.
# Show the distinct VOTER_NAME entries
voter_df.select(____).distinct().show(40, truncate=False)
# Filter voter_df where the VOTER_NAME is 1-20 characters in length
voter_df = ____('length(VOTER_NAME) > 0 and length(VOTER_NAME) < 20')
# Filter out voter_df where the VOTER_NAME contains an underscore
voter_df = voter_df.filter(~ F.col('VOTER_NAME').____)
# Show the distinct VOTER_NAME entries again
voter_df.____(____).____().____(40, truncate=False)