Python Pandas: Wird die Reihenfolge bei Verwendung von groupby () und agg () beibehalten?
Ich habe verwendet Pandas besucht 'agg()
-Funktion zum Ausführen von Zusammenfassungsstatistiken für jede Spalte eines data.frame. So würden Sie beispielsweise den Mittelwert und die Standardabweichung berechnen:
df = pd.DataFrame({'A': ['group1', 'group1', 'group2', 'group2', 'group3', 'group3'],
'B': [10, 12, 10, 25, 10, 12],
'C': [100, 102, 100, 250, 100, 102]})
>>> df
[output]
A B C
0 group1 10 100
1 group1 12 102
2 group2 10 100
3 group2 25 250
4 group3 10 100
5 group3 12 102
In beiden Fällen spielt die Reihenfolge, in der einzelne Zeilen an die Funktion agg gesendet werden, keine Rolle. Betrachten Sie jedoch das folgende Beispiel:
df.groupby('A').agg([np.mean, lambda x: x.iloc[1] ])
[output]
mean <lambda> mean <lambda>
A
group1 11.0 12 101 102
group2 17.5 25 175 250
group3 11.0 12 101 102
In diesem Fall funktioniert das Lambda wie vorgesehen und gibt die zweite Zeile in jeder Gruppe aus. Es ist mir jedoch nicht gelungen, in der Pandas-Dokumentation irgendetwas zu finden, was impliziert, dass dies in allen Fällen garantiert wahr ist. Ich möchte @ verwendagg()
zusammen mit einer gewichteten Durchschnittsfunktion. Daher möchte ich sicherstellen, dass die Zeilen, die in die Funktion aufgenommen werden, in derselben Reihenfolge wie im ursprünglichen Datenrahmen angezeigt werden.
Weiß jemand, am besten über irgendwo in der Dokumentation oder im Pandas-Quellcode, ob dies garantiert der Fall ist?