Мої дані можуть мати декілька подій у певну дату або НЕ подій на дату. Я беру ці події, беру підрахунок за датою та малюю їх. Однак, коли я їх закладаю, мої дві серії не завжди відповідають.
idx = pd.date_range(df['simpleDate'].min(), df['simpleDate'].max())
s = df.groupby(['simpleDate']).size()
У наведеному вище коді idx стає діапазоном, наприклад, 30 дат. З 01.09.2013 по 30.09.2013 Однак, S може мати лише 25 або 26 днів, оскільки жодна подія не відбулася за вказану дату. Потім я отримую AssertionError, оскільки розміри не збігаються, коли я намагаюся побудувати графік:
fig, ax = plt.subplots()
ax.bar(idx.to_pydatetime(), s, color='green')
Який правильний спосіб вирішити це? Чи хочу я видалити дати ID без значень з IDX або (що я б краще зробив) - додати до серії пропущену дату з рахунком 0. Я вважаю за краще мати повний графік 30 днів із 0 значеннями. Якщо цей підхід правильний, якісь пропозиції щодо того, як розпочати роботу? Чи потрібна мені якась динамічна reindex
функція?
Ось фрагмент S ( df.groupby(['simpleDate']).size()
), зауважте, що немає записів за 04 та 05.
09-02-2013 2
09-03-2013 10
09-06-2013 5
09-07-2013 1
reindex
- це дивовижна функція. Він може (1) упорядкувати наявні дані, щоб вони відповідали новому набору міток, (2) вставити нові рядки, де раніше не існувало мітки, (3) заповнити дані про відсутніх мітках (у тому числі шляхом заповнення вперед / назад) (4) вибір рядків за етикеткою!