pandas.core.groupby.SeriesGroupBy.resample#
- SeriesGroupBy.resample(правило, *args, include_groups=True, **kwargs)[источник]#
Обеспечить передискретизацию при использовании TimeGrouper.
Для заданного группировщика функция передискретизирует его в соответствии со строкой «строка» -> «частота».
См. псевдонимы частоты документация для получения дополнительных сведений.
- Параметры:
- правилоstr или DateOffset
Строка смещения или объект, представляющий преобразование группировщика цели.
- *args
Возможные аргументы: how, fill_method, limit, kind и на, и другие аргументы TimeGrouper.
- include_groupsbool, по умолчанию True
Когда True, будет предпринята попытка включить группировки в операцию, если они являются столбцами DataFrame. Если это вызывает TypeError, результат будет вычислен с исключенными группировками. Когда False, группировки будут исключены при применении
func.Добавлено в версии 2.2.0.
Устарело с версии 2.2.0: Установка include_groups в True устарела. Только значение False будет разрешено в будущей версии pandas.
- **kwargs
Возможные аргументы: how, fill_method, limit, kind и на, и другие аргументы TimeGrouper.
- Возвращает:
- pandas.api.typing.DatetimeIndexResamplerGroupby,
- pandas.api.typing.PeriodIndexResamplerGroupby, или
- pandas.api.typing.TimedeltaIndexResamplerGroupby
Вернуть новый объект groupby, тип которого зависит от передискретизируемых данных.
Смотрите также
GrouperУкажите частоту для передискретизации при группировке по ключу.
DatetimeIndex.resampleПреобразование частоты и передискретизация временных рядов.
Примеры
>>> idx = pd.date_range('1/1/2000', periods=4, freq='min') >>> df = pd.DataFrame(data=4 * [range(2)], ... index=idx, ... columns=['a', 'b']) >>> df.iloc[2, 0] = 5 >>> df a b 2000-01-01 00:00:00 0 1 2000-01-01 00:01:00 0 1 2000-01-01 00:02:00 5 1 2000-01-01 00:03:00 0 1
Понижение частоты DataFrame до 3-минутных интервалов и суммирование значений меток времени, попадающих в интервал.
>>> df.groupby('a').resample('3min', include_groups=False).sum() b a 0 2000-01-01 00:00:00 2 2000-01-01 00:03:00 1 5 2000-01-01 00:00:00 1
Повысить частоту выборки ряда до 30-секундных интервалов.
>>> df.groupby('a').resample('30s', include_groups=False).sum() b a 0 2000-01-01 00:00:00 1 2000-01-01 00:00:30 0 2000-01-01 00:01:00 1 2000-01-01 00:01:30 0 2000-01-01 00:02:00 0 2000-01-01 00:02:30 0 2000-01-01 00:03:00 1 5 2000-01-01 00:02:00 1
Передискретизация по месяцам. Значения присваиваются месяцу периода.
>>> df.groupby('a').resample('ME', include_groups=False).sum() b a 0 2000-01-31 3 5 2000-01-31 1
Понизить частоту дискретизации ряда до 3-минутных интервалов, как выше, но закрыть правую сторону интервала.
>>> ( ... df.groupby('a') ... .resample('3min', closed='right', include_groups=False) ... .sum() ... ) b a 0 1999-12-31 23:57:00 1 2000-01-01 00:00:00 2 5 2000-01-01 00:00:00 1
Понизить частоту дискретизации ряда до 3-минутных интервалов и закрыть правую сторону интервала, но маркировать каждый интервал с помощью правой границы вместо левой.
>>> ( ... df.groupby('a') ... .resample('3min', closed='right', label='right', include_groups=False) ... .sum() ... ) b a 0 2000-01-01 00:00:00 1 2000-01-01 00:03:00 2 5 2000-01-01 00:03:00 1