Maison > Article > développement back-end > Comment convertir une sortie Pandas GroupBy MultiIndex d'une série en DataFrame ?
Considérez le DataFrame suivant :
df1 = pd.DataFrame({'City': ['Seattle', 'Seattle', 'Portland', 'Seattle', 'Seattle', 'Portland'], 'Name': ['Alice', 'Bob', 'Mallory', 'Mallory', 'Bob', 'Mallory']})
Après avoir effectué une opération de regroupement à l'aide de groupby( ), la sortie est un DataFrame d'index hiérarchique, comme indiqué ci-dessous :
g1 = df1.groupby(['Name', 'City']).count() print(g1) City Name Name City Alice Seattle 1 1 Bob Seattle 2 2 Mallory Portland 2 2 Seattle 1 1
Pour récupérer la structure DataFrame souhaitée, il existe plusieurs approches.
Cela implique l'ajout d'un suffixe à la colonne noms et réinitialisation de l'index hiérarchique :
g1.add_suffix('_Count').reset_index() print( pd.DataFrame({'City_Count': g1['City'], 'Name_Count': g1['Name'] }) ) City_Count Name_Count Alice Seattle 1 1 Portland 2 2 Bob Seattle 2 2 Mallory Portland 2 2 Seattle 1 1
Une approche alternative consiste à utiliser la méthode size() pour compter les occurrences pour chaque groupe et réinitialiser l'index :
df1.groupby(['Name', 'City']).size().reset_index() print( pd.DataFrame({'Name': g1.index.get_level_values(0), 'City': g1.index.get_level_values(1), 'Count': g1['City'] }) ) Name City Count 0 Alice Seattle 1 1 Bob Seattle 2 2 Mallory Portland 2 3 Mallory Seattle 1
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!