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?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage