Mes données peuvent avoir plusieurs événements à une date donnée ou AUCUN événement à une date. Je prends ces événements, j'obtiens un décompte par date et je les trace. Cependant, lorsque je les trace, mes deux séries ne correspondent pas toujours.
idx = pd.date_range(df['simpleDate'].min(), df['simpleDate'].max())
s = df.groupby(['simpleDate']).size()
Dans le code ci-dessus, idx devient une plage de 30 dates. 09-01-2013 au 09-30-2013 Cependant S ne peut avoir que 25 ou 26 jours car aucun événement ne s'est produit à une date donnée. J'obtiens alors une AssertionError car les tailles ne correspondent pas lorsque j'essaye de tracer:
fig, ax = plt.subplots()
ax.bar(idx.to_pydatetime(), s, color='green')
Quelle est la bonne façon d'aborder cela? Est-ce que je veux supprimer les dates sans valeurs d' IDX ou (ce que je préfère faire) ajouter à la série la date manquante avec un compte de 0. Je préfère avoir un graphique complet de 30 jours avec 0 valeurs. Si cette approche est correcte, des suggestions sur la façon de commencer? Ai-je besoin d'une sorte de reindex
fonction dynamique ?
Voici un extrait de S ( df.groupby(['simpleDate']).size()
), ne notez aucune entrée pour 04 et 05.
09-02-2013 2
09-03-2013 10
09-06-2013 5
09-07-2013 1
reindex
est une fonction incroyable. Il peut (1) réorganiser les données existantes pour qu'elles correspondent à un nouvel ensemble d'étiquettes, (2) insérer de nouvelles lignes là où aucune étiquette n'existait auparavant, (3) remplir les données pour les étiquettes manquantes, (y compris par remplissage avant / arrière) (4) sélectionner des lignes par label!