Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Filtrage et Sélection de Données avec Python | Travail Avec les Données
Fondamentaux de Databricks : Guide du Débutant

Filtrage et Sélection de Données avec Python

Glissez pour afficher le menu

Note
Définition

La sélection et le filtrage sont les opérations les plus courantes dans la manipulation de données. Sélectionner permet de choisir des colonnes spécifiques d'intérêt, tandis que Filtrer permet de restreindre les lignes en fonction de critères ou de conditions spécifiques.

Dans la plupart des scénarios réels, il n'est pas nécessaire de travailler avec chaque colonne ou ligne d'un ensemble de données. Les grandes tables peuvent comporter des centaines de colonnes et des millions de lignes, dont la majorité peut être sans rapport avec votre analyse spécifique. Dans ce chapitre, vous apprendrez à « extraire » exactement les données dont vous avez besoin à l'aide des méthodes select() et filter().

Sélection de colonnes spécifiques

La méthode select() permet de créer un nouveau DataFrame qui ne contient que les colonnes choisies. Cela réduit la quantité de mémoire utilisée par votre cluster et rend vos résultats beaucoup plus lisibles.

# Select only two specific columns
selected_df = df.select("carat", "price")

display(selected_df)

Remarquez que Spark ne modifie pas le df original. À la place, il crée un nouveau DataFrame appelé selected_df. Si vous souhaitez sélectionner toutes les colonnes sauf une, ou effectuer un calcul lors de la sélection, vous devrez utiliser une syntaxe plus avancée. Cependant, pour les tâches de base, passer les noms de colonnes sous forme de chaînes de caractères est l'approche standard.

Filtrage des lignes avec des conditions

La méthode filter() (ou son alias where()) agit comme un filtre pour vos données. Vous fournissez une condition, et Spark ne conserve que les lignes pour lesquelles cette condition est vraie.

# Filter for rows where the carat is '0.23'
filtered_df = df.filter(df.carat == 0.23)

display(filtered_df)

Vous pouvez utiliser des opérateurs de comparaison standards comme == (égal à), != (différent de), > (supérieur à) et < (inférieur à).

Combinaison de plusieurs filtres

Il est souvent nécessaire d'appliquer plusieurs règles simultanément. Pour cela, il est possible de chaîner les filtres ou d'utiliser des opérateurs logiques comme "Et" (&) et "Ou" (|).

good_carat_df = df.filter((df.carat == 0.23) & (df.cut == "Good"))

display(good_carat_df)
Note
Remarque

Lors de la combinaison de filtres avec & ou |, il est toujours nécessaire d'entourer chaque condition individuelle de parenthèses. Cela garantit que Spark évalue correctement la logique.

Sélection et filtrage en une seule étape

Comme Spark utilise une API « fluide », il est possible d’enchaîner ces commandes sur une seule ligne de code. Il s’agit d’un schéma très courant en ingénierie des données professionnelle :

# Select specific diamonds by `price > 500`
high_profit_df = df.select("carat", "price").filter(df.price > 500)

display(high_profit_df)

Vérification du travail

Après chaque sélection ou filtrage, il est recommandé d'exécuter un count(). Si vous commencez avec 10 000 lignes et qu'après un filtrage il ne vous en reste aucune, cela signifie que votre condition de filtrage est peut-être trop stricte ou qu'il y a une faute de frappe dans les valeurs de chaîne.

1. Quelle méthode utiliseriez-vous si vous souhaitez ne sélectionner que 3 colonnes parmi une table de 50 colonnes ?

2. En Python, quelle est la manière correcte de filtrer les lignes où "Total_Profit" est supérieur à 1000 ?

question mark

Quelle méthode utiliseriez-vous si vous souhaitez ne sélectionner que 3 colonnes parmi une table de 50 colonnes ?

Sélectionnez la réponse correcte

question mark

En Python, quelle est la manière correcte de filtrer les lignes où "Total_Profit" est supérieur à 1000 ?

Sélectionnez la réponse correcte

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 4

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Section 4. Chapitre 4
some-alt