Maison >développement back-end >Tutoriel Python >Comment aplatir un index de colonne hiérarchique dans Pandas ?

Comment aplatir un index de colonne hiérarchique dans Pandas ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-07 17:44:13768parcourir

How to Flatten a Hierarchical Column Index in Pandas?

Aplatissement des colonnes d'un index hiérarchique

Pour aplatir un index hiérarchique dans les colonnes d'un Pandas DataFrame, suivez ces étapes :

1. Définir les colonnes au niveau supérieur :

df.columns = df.columns.get_level_values(0)

Cela définira le niveau supérieur de l'index hiérarchique comme nouveaux noms de colonnes.

2. Rejoindre le MultiIndex dans un index unique (facultatif) :

Si vous souhaitez combiner davantage le MultiIndex en un seul index, vous pouvez procéder comme suit :

df.columns = [' '.join(col).strip() for col in df.columns.values]

Cela rejoindra le noms de colonnes utilisant l'espace comme séparateur, supprimant tout début ou fin espaces.

Exemple :

Considérez le DataFrame suivant avec un index hiérarchique en colonnes :

df = pd.DataFrame({'s_PC': [1, 0, 1], 's_CL': [0, 0, 10]},
                    index = pd.MultiIndex.from_tuples([
                        ('day', 1),('day', 2),('day', 3)
                    ]), columns = pd.MultiIndex.from_tuples([
                        ('USAF', ''),('WBAN', ''),('year', 1993)
                    ]))

Application de l'aplatissement opération :

# Set columns to top level
df.columns = df.columns.get_level_values(0)

# Join MultiIndex into single index
df.columns = [' '.join(col).strip() for col in df.columns.values]

Sortie :

   USAF  WBAN  year  day  s_PC  s_CL
0   702   265  1993   1     1     0
1   702   265  1993   2     0     0
2   702   265  1993   3     1    10

L'index hiérarchique a été aplati en un seul index.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn