У меня есть следующий набор данных
df = pd.DataFrame({'timestamp': pd.date_range('1/1/2020', '3/1/2020 23:59', freq='12h'),
'col1': np.random.randint(100,size=122)}).\
sort_values('timestamp')
Я хочу вычислить ежедневную, еженедельную и месячную сумму col1
. Если я использую гранулярность 'W' для столбца timestamp
, я получаю ошибку ValueError: ValueError: <Week: weekday=6> is a non-fixed frequency
и читаю, что рекомендуется использовать 7D
, 30D
et c.
Мой вопрос: pandas вычислить 7D
или 30D
гранулярность? Если я добавлю еще один столбец
df['timestamp2']= df.timestamp.dt.floor('30D')
df.groupby('timestamp2')[['col1']].sum()
, я получу следующий результат:
timestamp2 col1
2019-12-10 778
2020-01-09 3100
2020-02-08 2470
Почему pandas возвращает эти даты, если моя минимальная дата - 1 января 2020 года, а максимальная временная метка - 1 марта 2020 года?