Pandas neu indizieren und fehlende Werte füllen: "Index muss monoton sein"

Bei der Beantwortung vondiese Stapelüberlauf-Frage, Ich habe bei der Verwendung einer Füllmethode beim erneuten Indizieren eines Datenrahmens ein interessantes Verhalten festgestellt.

Diesold Fehlerbericht in Pandas sagt, dassdf.reindex(newIndex,method='ffill') sollte gleich @ sedf.reindex(newIndex).ffill(), aber das ist NICHT das Verhalten, das ich beobachte

Hier ist ein Codeausschnitt, der das Verhalten veranschaulicht

df = pd.DataFrame({'values': 2}, index=pd.DatetimeIndex(['2016-06-02', '2016-05-04', '2016-06-03']))
newIndex = pd.DatetimeIndex(['2016-05-04', '2016-06-01', '2016-06-02', '2016-06-03', '2016-06-05'])
print(df.reindex(newIndex).ffill())
print(df.reindex(newIndex, method='ffill'))

Die erste print-Anweisung funktioniert wie erwartet. Die Sekunde wirft ein

ValueError: index must be monotonic increasing or decreasing

Was ist denn hier los

EDIT: Beachten Sie, dass die Probedf absichtlic hat einen nicht monotonen Index. Die Frage bezieht sich auf die Reihenfolge der Operationen indf.reindex(newIndex, method='ffil'). Ich erwarte, dass der Bug-Report funktioniert - erst mit dem neuen Index neu indizieren und dann ausfüllen.

Wie Sie sehen können, dienewIndex.is_monotonic istTrue, und die Füllung funktioniert, wenn sie separat aufgerufen wird, schlägt jedoch fehl, wenn sie als Parameter für @ aufgerufen wirreindex.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage