Вы можете использовать pd.Grouper
после того, как вы установили Date
в формат даты и времени:
Начиная с вашего фрейма данных:
>>> df
Date Title
0 2001-05-22 A
1 2001-05-28 B
2 2001-06-13 C
3 2001-06-14 D
4 2001-06-15 E
5 2001-07-15 F
6 2001-07-13 G
7 2001-07-16 H
8 2001-07-17 I
9 2001-12-01 Y
10 2001-12-31 Z
Установите дату и времяgroupby
month:
df['Date'] = pd.to_datetime(df['Date'])
df.groupby(pd.Grouper(key='Date', freq='m')).count()
Вывод:
Title
Date
2001-05-31 2
2001-06-30 3
2001-07-31 4
2001-08-31 0
2001-09-30 0
2001-10-31 0
2001-11-30 0
2001-12-31 2
Для построения графика вы можете использовать это как скелет (я действительно не знаю, что вы ищете вучасток):
df['Date'] = pd.to_datetime(df['Date'])
gb = df.groupby(pd.Grouper(key='Date', freq='m')).count()
import matplotlib.pyplot as plt
plt.bar(gb.index, gb.Title)
plt.ylabel('count')
plt.xticks(rotation=90)
plt.tight_layout()