Meus dados podem ter vários eventos em uma determinada data ou NENHUM evento em uma data. Pego esses eventos, conto por data e os traço. No entanto, quando os traço, minhas duas séries nem sempre correspondem.
idx = pd.date_range(df['simpleDate'].min(), df['simpleDate'].max())
s = df.groupby(['simpleDate']).size()
No código acima, o idx se torna um intervalo de, digamos, 30 datas. 01-09-2013 a 30-09-2013 No entanto, S pode ter apenas 25 ou 26 dias porque nenhum evento ocorreu em uma determinada data. Em seguida, recebo um AssertionError, pois os tamanhos não correspondem quando tento traçar:
fig, ax = plt.subplots()
ax.bar(idx.to_pydatetime(), s, color='green')
Qual é a maneira correta de resolver isso? Eu quero remover datas sem valores do IDX ou (o que eu preferiria) é adicionar à série a data que falta com uma contagem de 0. Prefiro ter um gráfico completo de 30 dias com 0 valores. Se essa abordagem for correta, alguma sugestão de como começar? Preciso de algum tipo de reindex
função dinâmica ?
Aqui está um trecho de S ( df.groupby(['simpleDate']).size()
), observe que não há entradas para 04 e 05.
09-02-2013 2
09-03-2013 10
09-06-2013 5
09-07-2013 1
reindex
é uma função incrível. Ele pode (1) reordenar os dados existentes para corresponder a um novo conjunto de etiquetas, (2) inserir novas linhas onde nenhuma etiqueta existia anteriormente, (3) preencher dados para etiquetas ausentes (incluindo preenchimento para frente / trás) (4) selecionar linhas por etiqueta!