pandas.DataFrame.asfreq#
- DataFrame.asfreq(freq, метод=None, how=None, нормализовать=False, fill_value=None)[источник]#
Преобразовать временной ряд в указанную частоту.
Возвращает исходные данные, приведенные к новому индексу с указанной частотой.
Если индекс этого Series/DataFrame является
PeriodIndex, новый индекс является результатом преобразования исходного индекса с помощьюPeriodIndex.asfreq(так что исходный индекс будет соответствовать новому индексу один к одному).В противном случае новый индекс будет эквивалентен
pd.date_range(start, end, freq=freq)гдеstartиendявляются, соответственно, первой и последней записями в исходном индексе (см.pandas.date_range()). Значения, соответствующие любым временным шагам в новом индексе, которые отсутствовали в исходном индексе, будут нулевыми (NaN), если не предоставлен метод для заполнения таких неизвестных (см.methodпараметр ниже).The
resample()метод более подходит, если операция над каждой группой временных шагов (например, агрегация) необходима для представления данных на новой частоте.- Параметры:
- freqDateOffset или строка
Частота DateOffset или строка.
- метод{'backfill'/'bfill', 'pad'/'ffill'}, по умолчанию None
Метод для заполнения пропусков в переиндексированных Series (обратите внимание, что это не заполняет NaN, которые уже присутствовали):
‘pad’ / ‘ffill’: распространить последнее допустимое наблюдение вперед до следующего допустимого
'backfill' / 'bfill': использовать СЛЕДУЮЩЕЕ допустимое наблюдение для заполнения.
- how{‘start’, ‘end’}, по умолчанию end
Только для PeriodIndex (см. PeriodIndex.asfreq).
- нормализоватьbool, по умолчанию False
Сбрасывать ли выходной индекс на полночь.
- fill_valueскаляр, опционально
Значение для использования в качестве пропущенных значений, применяемое при повышающей дискретизации (обратите внимание, это не заполняет NaN, которые уже присутствовали).
- Возвращает:
- Series/DataFrame
Объект Series/DataFrame, переиндексированный с указанной частотой.
Смотрите также
reindexПривести DataFrame к новому индексу с опциональной логикой заполнения.
Примечания
Чтобы узнать больше о строках частоты, пожалуйста, смотрите эта ссылка.
Примеры
Начните с создания серии с 4 временными метками по одной минуте.
>>> index = pd.date_range('1/1/2000', periods=4, freq='min') >>> series = pd.Series([0.0, None, 2.0, 3.0], index=index) >>> df = pd.DataFrame({'s': series}) >>> df s 2000-01-01 00:00:00 0.0 2000-01-01 00:01:00 NaN 2000-01-01 00:02:00 2.0 2000-01-01 00:03:00 3.0
Повысить частоту выборки ряда до 30-секундных интервалов.
>>> df.asfreq(freq='30s') s 2000-01-01 00:00:00 0.0 2000-01-01 00:00:30 NaN 2000-01-01 00:01:00 NaN 2000-01-01 00:01:30 NaN 2000-01-01 00:02:00 2.0 2000-01-01 00:02:30 NaN 2000-01-01 00:03:00 3.0
Повторная выборка, предоставляя
fill value.>>> df.asfreq(freq='30s', fill_value=9.0) s 2000-01-01 00:00:00 0.0 2000-01-01 00:00:30 9.0 2000-01-01 00:01:00 NaN 2000-01-01 00:01:30 9.0 2000-01-01 00:02:00 2.0 2000-01-01 00:02:30 9.0 2000-01-01 00:03:00 3.0
Повторная выборка, предоставляя
method.>>> df.asfreq(freq='30s', method='bfill') s 2000-01-01 00:00:00 0.0 2000-01-01 00:00:30 NaN 2000-01-01 00:01:00 NaN 2000-01-01 00:01:30 2.0 2000-01-01 00:02:00 2.0 2000-01-01 00:02:30 3.0 2000-01-01 00:03:00 3.0