Maison >développement back-end >Tutoriel Python >Comment aplatir un DataFrame Pandas GroupBy MultiIndex ?
Conversion d'une sortie Pandas GroupBy MultiIndex en un DataFrame
Lors de l'exécution d'une opération groupby sur un DataFrame pandas avec plusieurs colonnes d'index, le résultat L'objet est un DataFrame avec un index hiérarchique. Cela peut être gênant si vous souhaitez accéder aux données sous forme de lignes individuelles.
Voici un exemple simple :
df1 = pd.DataFrame({"City": ["Seattle", "Seattle", "Portland", "Seattle", "Seattle", "Portland"], "Name": ["Alice", "Bob", "Mallory", "Mallory", "Bob", "Mallory"]}) g1 = df1.groupby(["Name", "City"]).count()
La sortie de g1 est un DataFrame avec un index hiérarchique :
City Name Name City Alice Seattle 1 1 Bob Seattle 2 2 Mallory Portland 2 2 Seattle 1 1
Pour reconvertir cela en DataFrame avec des lignes individuelles, vous pouvez utiliser soit add_suffix et reset_index méthodes :
g1.add_suffix("_Count").reset_index()
Cela ajoutera un suffixe aux colonnes d'index et réinitialisera l'index pour créer un DataFrame plat :
Name City City_Count Name_Count 0 Alice Seattle 1 1 1 Bob Seattle 2 2 2 Mallory Portland 2 2 3 Mallory Seattle 1 1
Ou, vous pouvez utiliser la méthode size et réinitialiser_index pour comptez le nombre de lignes dans chaque groupe et créez un nouveau DataFrame :
DataFrame({'count': df1.groupby(["Name", "City"]).size()}).reset_index()
Cela créera un DataFrame avec un seul index colonne :
Name City count 0 Alice Seattle 1 1 Bob Seattle 2 2 Mallory Portland 2 3 Mallory Seattle 1
L'approche que vous utiliserez dépendra de vos besoins spécifiques.
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!