Ich habe eine DataFrame
mit MultiIndex, zum Beispiel:
In [1]: arrays = [['one','one','one','two','two','two'],[1,2,3,1,2,3]]
In [2]: df = DataFrame(randn(6,2),index=MultiIndex.from_tuples(zip(*arrays)),columns=['A','B'])
In [3]: df
Out [3]:
A B
one 1 -2.028736 -0.466668
2 -1.877478 0.179211
3 0.886038 0.679528
two 1 1.101735 0.169177
2 0.756676 -1.043739
3 1.189944 1.342415
Nun möchte ich die Mittelwerte der Elemente 2 und 3 (Indexebene 1) für jede Zeile (Indexebene 0) und jede Spalte berechnen. Ich brauche also einen DataFrame, der wie folgt aussehen würde
A B
one 1 mean(df['A'].ix['one'][1:3]) mean(df['B'].ix['one'][1:3])
two 1 mean(df['A'].ix['two'][1:3]) mean(df['B'].ix['two'][1:3])
Wie kann ich das tun, ohne Schleifen über Zeilen (Indexebene 0) des ursprünglichen Datenrahmens zu verwenden? Was ist, wenn ich dasselbe für ein Panel tun möchte? Es muss eine einfache Lösung mit groupby geben, aber ich lerne es immer noch und kann mich nicht an eine Antwort erinnern.