Wenn ich groupby() gefolgt von einer rolling() - Berechnung mit einem mehrstufigen Index mache, wird eine der Ebenen in der Index wird wiederholt - am seltsamsten. Ich bin mit Pandas 0.18.1Das Ausführen eines Groupby- und Rolling-Fensters auf einem Pandas Dataframe mit einem Multilevel-Index führt zu einem doppelten Indexeintrag
import pandas as pd
df = pd.DataFrame(data=[[1, 1, 10, 20], [1, 2, 30, 40], [1, 3, 50, 60],
[2, 1, 11, 21], [2, 2, 31, 41], [2, 3, 51, 61]],
columns=['id', 'date', 'd1', 'd2'])
df.set_index(['id', 'date'], inplace=True)
df = df.groupby(level='id').rolling(window=2)['d1'].sum()
print(df)
print(df.index)
Die Ausgabe ist wie folgt
id id date
1 1 1 NaN
2 40.0
3 80.0
2 2 1 NaN
2 42.0
3 82.0
Name: d1, dtype: float64
MultiIndex(levels=[[1, 2], [1, 2], [1, 2, 3]],
labels=[[0, 0, 0, 1, 1, 1], [0, 0, 0, 1, 1, 1], [0, 1, 2, 0, 1, 2]],
names=[u'id', u'id', u'date'])
Was seltsam ist, dass die id-Spalte nun zweimal in dem Multi-Index zeigt nach oben. Das Verschieben der Auswahlspalte ['d1'] macht keinen Unterschied.
Jede Hilfe würde sehr geschätzt werden.
Dank Paul
Danke. Wird auf "Anwenden" (Rollen) wechseln, bis dies behoben ist. –