Панды переиндексируют и заполняют пропущенные значения: «Индекс должен быть монотонным»

Отвечаяэтот вопросЯ обнаружил интересное поведение при использовании метода fill при переиндексации данных.

этостарый отчет об ошибке в пандах говорит чтоdf.reindex(newIndex,method='ffill') должно быть эквивалентноdf.reindex(newIndex).ffill()но это НЕ поведение, которое я наблюдаю

Вот фрагмент кода, который иллюстрирует поведение

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'))

Первое печатное заявление работает как ожидалось. Вторая поднимает

ValueError: index must be monotonic increasing or decreasing

Что тут происходит?

РЕДАКТИРОВАТЬ: Обратите внимание, что образецdf намеренно имеет немонотонный индекс. Вопрос относится к порядку операций вdf.reindex(newIndex, method='ffil'), Я ожидаю, что в отчете об ошибках сказано, что он должен сработать - сначала переиндексировать с новым индексом, а затем заполнить.

Как видите,newIndex.is_monotonic являетсяTrueи заливка работает, когда вызывается отдельно, но завершается неудачно, когда вызывается как параметр дляreindex.

Ответы на вопрос(2)

Ваш ответ на вопрос