Настройка
df = pd.DataFrame(
{'temp_C': range(10)},
pd.to_datetime([
'2010-01-23', '2012-03-30',
'2013-01-23', '2013-03-30',
'2014-01-23', '2014-03-30',
'2016-01-23', '2015-03-30',
'2017-01-23', '2017-03-30',
])
)
groupby
df.groupby('{:%m-%d}'.format).mean()
temp_C
01-23 4
03-30 5
Пояснение
В строках есть метод format
, который можно использовать каквызываемый.Он принимает аргументы, которые обрабатываются и интерполируются как новая строка.
'{:%m-%d}'.format
- это вызываемый объект, который принимает один позиционный аргумент и обрабатывается тем, что находится в {}
в строке.В этом случае '{:%m-%d}'
относится к обработке дат, и форматирование может быть лучше понято здесь .Он говорит, что при просмотре даты отформатируйте ее как месяц-день.
При передаче вызываемого элемента в groupby
он применяет этот вызываемый элемент к каждому элементу индекса.Поскольку наш индекс Datetime
, то каждый элемент возвращается как месяц и день.Это именно то, что мы хотели, чтобы взять наши mean
.