Используйте groupby
и sum
:
(df.groupby([df.Date.dt.year.rename('Year'), df.Date.dt.month.rename('Month')])['x']
.sum())
Year Month
2012 1 181
Name: x, dtype: int64
Обратите внимание, что, если "Дата" не является столбцом типа d datetime, используйте
df.Date = pd.to_datetime(df.Date, errors='coerce')
, чтобы сначала преобразовать его.
(df.groupby([df.Date.dt.year.rename('Year'), df.Date.dt.month.rename('Month')])['x']
.sum()
.reset_index())
Year Month x
0 2012 1 181