1
Die neue Pandas-Version schreibt die TimeGrouper
, so sollten wir die regulären Grouper
verwenden.Pandas Grouper vs Zeit Grouper
Der alte Code:
df['column_name'].groupby(pd.TimeGrouper("M")).mean().plot()
arbeitet in der alten Version von Pandas in Ordnung. Keine von:
df.groupby(pd.Grouper(key='column_name', freq="M")).mean().plot()
df['column_name'].groupby(pd.Grouper(freq="M")).mean().plot()
funktioniert in der neuen Version. Eiter ist der Schlüssel betrachtet, zu fehlen, oder Pandas beklagt:
Only valid with DatetimeIndex, TimedeltaIndex or PeriodIndex, but got an instance of 'Float64Index'
bearbeiten
import pandas as pd
df = pd.DataFrame({'column_name':['2017-01-01', '2017-01-02'],
'column_value':[1,3]})
df
df.index = pd.DatetimeIndex(df.column_name)
df.index
# old version
df['column_value'].groupby(pd.TimeGrouper("M")).mean().plot()
# new version
df.groupby(pd.Grouper(key='column_value', freq="M")).mean().plot()
Wenn die Schlüsselspalte kein Datetime ist, dann funktioniert Grouper mit Freq-Attribut nicht. – Dark
Aber das galt schon für die alte Version. Also hätte das Code-Snippet überhaupt nicht funktionieren sollen? angenommen, dass der Index ein regulärer Bereichsindex wäre. –
Oh Entschuldigung, ich stimme zu. Können Sie Beispieldaten hinzufügen, sodass wir versuchen, dieselben zu reproduzieren? – Dark