Skip to content

PySpark Drop Column: Supprimez efficacement des colonnes des DataFrame

Updated on

La suppression de colonnes à partir de DataFrame est une tâche courante dans PySpark, un outil puissant pour la manipulation et l'analyse de données. Que vous ayez affaire à une seule colonne ou à plusieurs, PySpark propose des techniques efficaces pour les supprimer de votre DataFrame. Cet article vous guidera à travers ces techniques, en offrant des explications détaillées et des exemples pour vous aider à maîtriser la suppression de colonnes dans PySpark.

Le DataFrame de PySpark propose une méthode drop(), qui peut être utilisée pour supprimer une seule colonne ou plusieurs colonnes d'un DataFrame. Cette méthode est polyvalente et peut être utilisée de différentes manières, selon vos besoins. Que vous souhaitiez supprimer une colonne par son nom, son index ou une condition, PySpark a ce qu'il vous faut.

Vous souhaitez créer rapidement des visualisations de données à partir de DataFrames Python Pandas sans écrire de code ?

PyGWalker est une bibliothèque Python pour l'analyse exploratoire de données avec visualisation. PyGWalker (opens in a new tab) peut simplifier votre flux de travail d'analyse et de visualisation de données dans Jupyter Notebook, en transformant votre dataframe pandas (et dataframe polars) en une interface utilisateur de type Tableau pour l'exploration visuelle.

PyGWalker pour la visualisation des données (opens in a new tab)

Comment supprimer une seule colonne dans un DataFrame PySpark

Supprimer une seule colonne d'un DataFrame PySpark est simple. La méthode drop() de PySpark prend self et *cols comme arguments. Voici comment vous pouvez l'utiliser :

df = df.drop('nom_colonne')

Dans cet exemple, 'nom_colonne' est le nom de la colonne que vous souhaitez supprimer. Cette ligne de code renverra un nouveau DataFrame avec la colonne spécifiée supprimée.

Il existe également d'autres façons de supprimer une seule colonne. Par exemple, vous pouvez utiliser la méthode drop() de pyspark.sql.functions :

from pyspark.sql.functions import col
df = df.drop(col('nom_colonne'))

Ces exemples montrent comment supprimer la colonne 'nom_colonne' du DataFrame. Vous pouvez utiliser l'une ou l'autre méthode en fonction de vos besoins.

Comment supprimer plusieurs colonnes dans un DataFrame PySpark

Si vous avez besoin de supprimer plusieurs colonnes d'un DataFrame, PySpark vous permet également de le faire. Vous pouvez passer un tableau de noms de colonnes à la méthode drop() :

df = df.drop('nom_colonne1', 'nom_colonne2', 'nom_colonne3')

Dans cet exemple, 'nom_colonne1', 'nom_colonne2' et 'nom_colonne3' sont les noms des colonnes que vous souhaitez supprimer. Cette ligne de code renverra un nouveau DataFrame avec les colonnes spécifiées supprimées.

Peut-on supprimer une colonne par son index dans un DataFrame PySpark ?

Bien que PySpark ne fournisse pas de fonction intégrée pour supprimer une colonne par son index, vous pouvez le faire en combinant la compréhension de liste de Python avec la méthode drop() de PySpark. Voici comment vous pouvez le faire :

df = df.drop(*[df.columns[i] for i in [index_colonne1, index_colonne2]])

Dans cet exemple, 'index_colonne1' et 'index_colonne2' sont les indices des colonnes que vous souhaitez supprimer. Cette ligne de code renverra un nouveau DataFrame avec les colonnes spécifiées supprimées.

N'oubliez pas que l'indexation en Python commence à 0, donc la première colonne du DataFrame est à l'index 0.

Comment supprimer une colonne uniquement si elle existe dans un DataFrame PySpark

Dans certains cas, vous voudrez peut-être supprimer une colonne uniquement si elle existe dans le DataFrame. PySpark ne fournit pas de fonction intégrée pour cela, mais vous pouvez le faire en vérifiant si la colonne figure dans la liste des colonnes du DataFrame avant d'appeler la méthode drop() :

if 'nom_colonne' in df.columns:
    df = df.drop('nom_colonne')

Dans cet exemple, 'nom_colonne' est le nom de la colonne que vous souhaitez supprimer. Cette ligne de code vérifiera si 'nom_colonne' existe dans les colonnes du DataFrame. Si c'est le cas, elle supprimera la colonne et renverra un nouveau DataFrame.

Comment supprimer les lignes avec des valeurs nulles dans un DataFrame PySpark

PySpark vous permet également de supprimer les lignes avec des valeurs nulles dans un DataFrame. Vous pouvez le faire en utilisant la méthode dropna() :

df = df.dropna()

Cette ligne de code renverra un nouveau DataFrame avec toutes les lignes contenant au moins une valeur nulle supprimées.

FAQ

Voici quelques questions fréquemment posées sur la suppression de colonnes dans le DataFrame PySpark :

  1. Comment supprimer les doublons dans un DataFrame PySpark ? Vous pouvez supprimer les doublons dans un DataFrame PySpark en utilisant la méthode dropDuplicates(). Cette méthode renvoie un nouveau DataFrame avec les lignes en doublon supprimées.

  2. Peut-on supprimer une liste de colonnes dans un DataFrame PySpark ? Oui, vous pouvez supprimer une liste de colonnes dans un DataFrame PySpark. Vous pouvez passer une liste de noms de colonnes à la méthode drop() pour supprimer plusieurs colonnes à la fois.

  3. Quelle est la syntaxe pour joindre deux DataFrames dans PySpark ? Vous pouvez joindre deux DataFrames dans PySpark en utilisant la méthode join(). La syntaxe est df1.join(df2, on='common_column', how='join_type'), où 'common_column' est la colonne sur laquelle vous souhaitez joindre les DataFrames et 'join_type' est le type de jointure que vous souhaitez effectuer (par exemple, 'inner', 'outer', 'left', 'right').