I miei dati possono avere più eventi in una determinata data o NO eventi in una data. Prendo questi eventi, ottengo un conteggio per data e li ordino. Tuttavia, quando li diagramma, le mie due serie non sempre corrispondono.Aggiungere date mancanti a dataframe panda
idx = pd.date_range(df['simpleDate'].min(), df['simpleDate'].max())
s = df.groupby(['simpleDate']).size()
Nel codice di cui sopra IDX diventa una serie di dire 30 date. 09-01-2013 a 09-30-2013 Tuttavia S può avere solo 25 o 26 giorni perché non si sono verificati eventi per una determinata data. Allora ottengo un AssertionError come le dimensioni dont partita quando provo a tracciare:
fig, ax = plt.subplots()
ax.bar(idx.to_pydatetime(), s, color='green')
Qual è il modo corretto per affrontare questo? Voglio rimuovere le date senza valori da IDX o (che preferirei fare) è aggiungere alla serie la data mancante con un conteggio di 0. Preferirei avere un grafico completo di 30 giorni con valori 0 . Se questo approccio è corretto, qualche suggerimento su come iniziare? Ho bisogno di una sorta di funzione dinamica reindex
?
Ecco un frammento di S (df.groupby(['simpleDate']).size()
), notare nessuna voce per il 04 e 05.
09-02-2013 2
09-03-2013 10
09-06-2013 5
09-07-2013 1
wow grazie! Non stavo capendo completamente come funziona bene la reindicizzazione. – KHibma
'reindex' è una funzione incredibile. Può (1) riordinare i dati esistenti per abbinarli a una nuova serie di etichette, (2) inserire nuove righe in cui non esisteva un'etichetta, (3) riempire i dati per le etichette mancanti, (incluso il riempimento avanti/indietro) (4) selezionare le righe per etichetta! – unutbu
@unutbu Questo risponde a parte di una domanda che ho avuto anch'io, grazie! Ma ti stavi chiedendo se sapessi come creare dinamicamente un elenco di date con eventi? –