Filtrer le contenu d’une colonne avec Python
Vous avez exploré différentes opérations sur les colonnes d’un DataFrame — passez maintenant à la modification d’un jeu de données réel. Le DataFrame voter_df contient des informations sur les votants du conseil municipal de Dallas au cours des dernières années. Ce DataFrame tronqué inclut la date du vote ainsi que le nom et la fonction du votant. Votre responsable vous a demandé de nettoyer ces données afin de pouvoir les intégrer ensuite à des rapports. La tâche principale consiste à supprimer toutes les entrées nulles ou les caractères anormaux et à renvoyer un ensemble spécifique de votants dont vous pourrez valider les informations.
C’est souvent l’une des premières étapes du nettoyage des données : retirer tout ce qui est manifestement hors format. Pour ce jeu de données, examinez bien les données d’origine et identifiez ce qui semble anormal dans la colonne VOTER_NAME.
La bibliothèque pyspark.sql.functions est déjà importée sous l’alias F.
Cet exercice fait partie du cours
Nettoyer des données avec PySpark
Instructions
- Affichez les valeurs distinctes de
VOTER_NAME. - Filtrez
voter_dfpour queVOTER_NAMEait une longueur de 1 à 20 caractères. - Excluez de
voter_dfles lignes oùVOTER_NAMEcontient un_. - Affichez à nouveau les valeurs distinctes de
VOTER_NAME.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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)