Группировка дат с привязкой к началу периода

При группировке в SQL, получаю данные, привязанные к началу временного интервала. Например, при группировке по месяцу, получаю год-месяц-01 и количество записей. При группировке в Pandas, получаю последний день месяца, то есть год-месяц-31 и количество записей. Каким образом сделать так, чтобы Pandas группировал аналогично SQL?

Группирую сейчас следующим образом

df.groupby(pd.Grouper(key='Date', freq=freq))['SomeField'].nunique()

Ответы (1 шт):

Автор решения: strawdog

Возможно, нужно поменять модификатор freq на "MS":

import pandas as pd

df = pd.DataFrame({"Date": pd.date_range(start='2001-01-01', freq='1d', periods=100)})
print(df.groupby(pd.Grouper(key='Date', freq="M")).count())
print(df.groupby(pd.Grouper(key='Date', freq="MS")).count())
Empty DataFrame
Columns: []
Index: [2001-01-31 00:00:00, 2001-02-28 00:00:00, 2001-03-31 00:00:00, 2001-04-30 00:00:00]
Empty DataFrame
Columns: []
Index: [2001-01-01 00:00:00, 2001-02-01 00:00:00, 2001-03-01 00:00:00, 2001-04-01 00:00:00]
→ Ссылка