Meine Daten können an einem bestimmten Datum mehrere Ereignisse oder an einem Datum KEINE Ereignisse enthalten. Ich nehme diese Ereignisse, zähle sie nach Datum und zeichne sie auf. Wenn ich sie jedoch zeichne, stimmen meine beiden Serien nicht immer überein.
idx = pd.date_range(df['simpleDate'].min(), df['simpleDate'].max())
s = df.groupby(['simpleDate']).size()
Im obigen Code wird idx zu einem Bereich von beispielsweise 30 Daten. 09-01-2013 bis 09-30-2013 S kann jedoch nur 25 oder 26 Tage haben, da für ein bestimmtes Datum keine Ereignisse aufgetreten sind. Ich erhalte dann einen AssertionError, da die Größen nicht übereinstimmen, wenn ich versuche zu zeichnen:
fig, ax = plt.subplots()
ax.bar(idx.to_pydatetime(), s, color='green')
Was ist der richtige Weg, um dies anzugehen? Möchte ich Datumsangaben ohne Werte aus IDX entfernen oder (was ich lieber tun möchte) das fehlende Datum mit einer Anzahl von 0 zur Serie hinzufügen? Ich möchte lieber ein vollständiges Diagramm von 30 Tagen mit 0 Werten haben. Wenn dieser Ansatz richtig ist, gibt es Vorschläge für den Einstieg? Benötige ich eine Art Dynamik?reindex
Funktion?
Hier ist ein Ausschnitt von S ( df.groupby(['simpleDate']).size()
), beachten Sie keine Einträge für 04 und 05.
09-02-2013 2
09-03-2013 10
09-06-2013 5
09-07-2013 1
reindex
ist eine erstaunliche Funktion. Es kann (1) vorhandene Daten neu anordnen, um sie mit einem neuen Satz von Beschriftungen abzugleichen, (2) neue Zeilen einfügen, in denen zuvor keine Beschriftung vorhanden war, (3) Daten für fehlende Beschriftungen füllen (einschließlich durch Vorwärts- / Rückwärtsfüllung) (4) Zeilen auswählen per Etikett!