ich einen Datenrahmen haben, die wie folgt aussieht:Pandas Gruppe von Sum Halten Sie nur eine der Index als Spalten
import pandas as pd
group = ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B']
df = {'population': [100,200,300,400,500,600,700,800],
'city_name': ['Chicago', 'Chicago', 'New York', 'New York', 'Chicago', 'New York', 'Chicago', 'New York'],
}
df = pd.DataFrame(df, index=group)
city_name population
A Chicago 100
A Chicago 200
A New York 300
A New York 400
B Chicago 500
B New York 600
B Chicago 700
B New York 800
Jetzt habe ich die Gesamtbevölkerung durch den Index und city_name
Einfach genug gruppiert finden wollen:
total = df.groupby([df.index, 'city_name']).sum()
population
city_name
A Chicago 300
New York 700
B Chicago 1200
New York 1400
Problem ist dies gibt einen Multi-Level-Index (denke ich). Ich möchte den ursprünglichen Index behalten, aber city_name als Spalte behalten. Mit anderen Worten, was ich will, ist
city_name population
A Chicago 300
A New York 700
B Chicago 1200
B New York 1400
Jetzt kann ich erreichen, was ich will von so etwas wie
total.reset_index(inplace=True)
total.set_index(keys='level_0', inplace=True)
tun Da die reset_index beide Indizes nimmt und legt sie als Spalten und dann kann ich nur gesetzt einer von ihnen zurück zum Index. Gibt es einen eleganteren Weg, dies zu tun?
Danke!
Oder können Sie die Ebenennamen zur besseren Lesbarkeit verwenden, das heißt Verwendung ' level = 'city_name'' – Marius
Ja, gute Idee, danke. – jezrael