pandas.groupby() Verständnisfrage
Verfasst: Montag 5. Juni 2017, 12:04
Hallo,
ich importiere das "planets" dataset von pandas.
Mit folgendem Code welchen ich aus einem Buch habe:
erziele ich folgende Ausgabe:
Nun ist aus der groupby documentation zu entnehmen, dass an die groupby() methode eine Liste übergeben werden kann, nach welcher die Gruppierung erfolgen soll. Nun wäre meine Frage ob ich mit folgender Interpretation des codes auf dem richtigen Weg bin.
1.Es wird also sozusagen zuerst nach "method" (Y-Richtung) aufgeteilt und dann nach decade (X-Richting).
was mich nun aber wirklich verwirrt ist:
Wenn ich das Argument decade aus der List entferne
dann wird mir eine Fehlermeldung der Art:
ausgegeben....
WARUM????
Ich habe doch nichts gemacht als die "X-Richtung" entfernt. Ich müsste aber doch dennoch die Summe der Nummern von "Astronomie", "Eclipse Timing Variations",... bilden und ausgeben können?
Kann mir das jemand bitte in möglichst bildlichen Sätzen erklären??
ich importiere das "planets" dataset von pandas.
Code: Alles auswählen
planets= sns.load_dataset("planets")
Code: Alles auswählen
decade= 10*(planets["year"]//10)
print(decade)
decade= decade.astype(str)+"s"
decade.name= "decade"
print(planets.groupby(["method",decade])["number"].sum().unstack().fillna(0))
Code: Alles auswählen
decade 1980s 1990s 2000s 2010s
method
Astrometry 0.0 0.0 0.0 2.0
Eclipse Timing Variations 0.0 0.0 5.0 10.0
Imaging 0.0 0.0 29.0 21.0
Microlensing 0.0 0.0 12.0 15.0
Orbital Brightness Modulation 0.0 0.0 0.0 5.0
Pulsar Timing 0.0 9.0 1.0 1.0
Pulsation Timing Variations 0.0 0.0 1.0 0.0
Radial Velocity 1.0 52.0 475.0 424.0
Transit 0.0 0.0 64.0 712.0
Transit Timing Variations 0.0 0.0 0.0 9.0
1.Es wird also sozusagen zuerst nach "method" (Y-Richtung) aufgeteilt und dann nach decade (X-Richting).
was mich nun aber wirklich verwirrt ist:
Wenn ich das Argument decade aus der List entferne
Code: Alles auswählen
planets.groupby(["method"])["number"].sum().unstack().fillna(0))
Code: Alles auswählen
AttributeError: 'Index' object has no attribute 'labels'
WARUM????
Ich habe doch nichts gemacht als die "X-Richtung" entfernt. Ich müsste aber doch dennoch die Summe der Nummern von "Astronomie", "Eclipse Timing Variations",... bilden und ausgeben können?
Kann mir das jemand bitte in möglichst bildlichen Sätzen erklären??