Estou tentando obter os índices da data ausente comparando-a com uma lista de datas não perdidas, como a seguir:
a = pd.DatetimeIndex(["2000", "2001", "2002", "2003",
"2004", "2005", "2009", "2010"])
b = pd.DatetimeIndex(["2000", "2001", "2002", "2003",
"2004", "2005", "2006", "2007",
"2008", "2009", "2010"])
a.reindex(b)
Eu obtive o seguinte
(DatetimeIndex(['2000-01-01', '2001-01-01', '2002-01-01', '2003-01-01',
'2004-01-01', '2005-01-01', '2006-01-01', '2007-01-01',
'2008-01-01', '2009-01-01', '2010-01-01'],
dtype='datetime64[ns]', freq=None),
array([ 0, 1, 2, 3, 4, 5, -1, -1, -1, 6, 7]))
Tentei substituir todos os valores ausentes que são -1 para Nan, usando, a.reindex(b, fill_value=np.NAN)
mas obtive o seguinte erroTypeError: Index.reindex() got an unexpected keyword argument ‘fill_value’
De acordo com a documentação do pandas, fill_vaue está entre os parâmetros de reindex. Alguma ideia?
Primeiro de tudo, você tem que fazer:
reindex
retorna duas coisas. Você precisa/quer obter apenas o indexador.Então agora você pode obter o que deseja:
Que é:
Por que seu código inicial estava errado? O
reindex()
método não suporta ofill_value
parâmetro parapandas.Index
objetos como faz parapandas.Series
oupandas.DataFrame
.Se você quiser apenas saber quais valores
b
estão faltando,a
useIndex.isin
:Saída:
Se você quiser os valores ausentes:
Saída:
e para os índices:
Saída:
array([6, 7, 8])