Os pandas reindexam e preenchem os valores ausentes: "O índice deve ser monotônico"
Ao responderesta questão stackoverflow, Encontrei um comportamento interessante ao usar um método de preenchimento ao reindexar um quadro de dados.
esterelatório de bug antigo nos pandas diz quedf.reindex(newIndex,method='ffill')
deve ser equivalente adf.reindex(newIndex).ffill()
, mas esse não é o comportamento que estou testemunhando
Aqui está um trecho de código que ilustra o comportamento
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'))
A primeira declaração de impressão funciona conforme o esperado. O segundo levanta uma
ValueError: index must be monotonic increasing or decreasing
Oque esta acontecendo aqui?
EDIT: Observe que a amostradf
intencionalmente tem um índice não monotônico. A questão refere-se à ordem das operações emdf.reindex(newIndex, method='ffil')
. Minha expectativa é que o relatório de erros diga que ele deve trabalhar primeiro com o novo índice e depois preencher.
Como você pode ver, onewIndex.is_monotonic
éTrue
e o preenchimento funciona quando chamado separadamente, mas falha quando chamado como parâmetro parareindex
.