Pandas Tutorials

Extraction et manipulation des en-têtes de colonnes de DataFrame Pandas

Spread the love

Extraction et manipulation des en-têtes de colonnes de DataFrame Pandas

Pandas, une bibliothèque essentielle de l’écosystème de la science des données Python, offre des moyens fluides d’interagir avec les en-têtes de colonnes des DataFrame. Ce guide détaille diverses techniques d’extraction et de manipulation de ces en-têtes, pour les structures de colonnes à un seul niveau et à plusieurs niveaux.

Table des matières

Accès aux en-têtes à un seul niveau

Pour les DataFrames avec un seul niveau d’en-têtes de colonnes, y accéder est simple. L’attribut .columns renvoie un objet Pandas Index, qui agit comme un tableau étiqueté. La conversion directe en liste est simple en utilisant la fonction intégrée list().


import pandas as pd

data = {'Name': ['Alice', 'Bob', 'Charlie'],
        'Age': [25, 30, 28],
        'City': ['New York', 'London', 'Paris']}
df = pd.DataFrame(data)

# Accès aux en-têtes en tant qu'Index Pandas
headers_index = df.columns

# Conversion en liste Python
headers_list = list(df.columns)

print("En-têtes en tant qu'Index :", headers_index)
print("En-têtes en tant que Liste :", headers_list)

Gestion des colonnes MultiIndex

Lorsqu’on traite des DataFrames possédant des colonnes MultiIndex (organisation hiérarchique des colonnes), la récupération des en-têtes nécessite une approche plus nuancée. L’attribut .columns renvoie toujours un Pandas Index, mais cet Index est maintenant multicouche. Chaque élément de la représentation en liste devient un tuple reflétant les niveaux hiérarchiques.


# DataFrame exemple avec colonnes MultiIndex
data2 = {'Name': ['Alice', 'Bob', 'Charlie'],
         'Age': [25, 30, 28],
         'City': ['New York', 'London', 'Paris']}
df2 = pd.DataFrame(data2)
df2 = df2.set_index(['Name', 'Age']) #Création de MultiIndex

multiindex_headers = df2.columns
multiindex_list = list(multiindex_headers)

print("En-têtes MultiIndex en tant que Liste :", multiindex_list)

# Accès aux niveaux individuels
level_0 = [col[0] for col in multiindex_list] # Accès au premier niveau
print("Niveau 0 :", level_0)

# Aplatissement de la liste MultiIndex
import itertools
flattened_list = list(itertools.chain(*multiindex_list))
print("Liste aplatie :", flattened_list)

Applications pratiques

L’extraction des en-têtes de colonnes est utile dans de nombreuses tâches de manipulation de données, notamment :

  • Génération dynamique de titres ou d’étiquettes de rapport.
  • Création de visualisations de données personnalisées avec des axes étiquetés.
  • Exécution d’opérations sur les colonnes sélectionnées en fonction des noms d’en-tête.
  • Facilitation du nettoyage ou du prétraitement des données en fonction des informations d’en-tête.

Gestion des erreurs et robustesse

Envisagez toujours les scénarios où votre DataFrame pourrait être vide ou avoir des structures de colonnes inattendues. L’ajout de vérifications pour ces situations améliore la robustesse de votre code :


if not df.empty:
    headers = list(df.columns)
    # Poursuivre le traitement avec 'headers'
else:
    print("DataFrame est vide !")

Techniques avancées (pour utilisateurs expérimentés)

Pour des structures de colonnes plus complexes ou des manipulations d’en-têtes personnalisées, envisagez d’utiliser des fonctionnalités Pandas avancées telles que :

  • df.columns.tolist() : Méthode plus concise pour la conversion en liste.
  • df.columns.map(lambda x: x.lower()) : Application d’opérations de chaîne pour modifier les noms d’en-tête.
  • df.rename(columns={'old_name': 'new_name'}) : Modification systématique des noms de colonnes.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *