Группировка дат с привязкой к началу периода
При группировке в 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]