Метод DataFrame.asfreq() в Pandas

Beginner

Введение

Метод DataFrame.asfreq() в библиотеке pandas для Python используется для преобразования временного ряда в заданную частоту. Он предоставляет способ заполнения пропущенных значений или обратной интерполяции. Применяя этот метод к DataFrame, мы можем преобразовать временной ряд в требуемую частоту, увеличить частоту и заполнить любые пропущенные значения.

Советы по работе с ВМ

После запуска ВМ нажмите в левом верхнем углу, чтобы переключиться на вкладку Notebook и получить доступ к Jupyter Notebook для практики.

Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook не загрузится полностью. Валидация операций не может быть автоматизирована из-за ограничений Jupyter Notebook.

Если вы сталкиваетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.

Преобразовать временной ряд в заданную частоту

Мы можем использовать метод DataFrame.asfreq(), чтобы преобразовать временной ряд в другую заданную частоту. Вот пример:

import pandas as pd

index = pd.date_range('1/1/2021', periods=4, freq='T')
series = pd.Series([0.0, None, 2.0, 3.0], index=index)
df = pd.DataFrame({'Time': series})
print(df)
print("Converting to a different frequency")
print(df.asfreq(freq='H'))

Этот код создает DataFrame с временным рядом и затем преобразует его в часовую частоту. Он выводит как исходный DataFrame, так и преобразованный DataFrame.

Перевыборка временного ряда с использованием метода DataFrame.asfreq()

Метод DataFrame.asfreq() также может перевыбирать частоту временного ряда. Вот пример:

import pandas as pd

index = pd.date_range('1/1/2021', periods=4, freq='T')
series = pd.Series([0.0, None, 2.0, 3.0], index=index)
df = pd.DataFrame({'Time': series})
print(df)
print("Upsampling the timeseries")
print(df.asfreq(freq='50s'))

В этом коде мы создаем DataFrame с временным рядом и затем перевыбираем его до частоты 50 секунд. Он выводит как исходный DataFrame, так и перевыборочный DataFrame.

Перевыборка временного ряда и заполнение пропущенных значений с использованием метода DataFrame.asfreq()

Метод DataFrame.asfreq() также может заполнять пропущенные значения при перевыборке временного ряда. Вот пример:

import pandas as pd

index = pd.date_range('1/1/2021', periods=4, freq='T')
series = pd.Series([0.0, None, None, 3.0], index=index)
df = pd.DataFrame({'Time': series})
print(df)
print("Upsampling timeseries and filling values")
print(df.asfreq(freq='50s', fill_value=9.0))

В этом коде мы создаем DataFrame с временным рядом, в котором есть пропущенные значения. Затем мы перевыбираем его до частоты 50 секунд и заполняем пропущенные значения значением 9.0. Он выводит как исходный DataFrame, так и перевыборочный DataFrame с заполненными значениями.

Перевыборка временного ряда и обратное заполнение пропущенных значений с использованием метода DataFrame.asfreq()

Метод DataFrame.asfreq() также может обратно заполнять пропущенные значения при перевыборке временного ряда. Вот пример:

import pandas as pd

index = pd.date_range('1/1/2021', periods=4, freq='T')
series = pd.Series([0.0, None, None, 3.0], index=index)
df = pd.DataFrame({'Time': series})
print("Upsampling timeseries")
print(df.asfreq(freq='70s'))
print("Backward filling values")
print(df.asfreq(freq='70s', method='bfill'))

В этом коде мы создаем DataFrame с временным рядом, в котором есть пропущенные значения. Затем мы перевыбираем его до частоты 70 секунд и обратно заполняем пропущенные значения. Он выводит как перевыборочный DataFrame, так и DataFrame с обратно заполненными значениями.

Резюме

Метод DataFrame.asfreq() в pandas - это полезный инструмент для преобразования, перевыборки и заполнения пропущенных значений в временных рядах данных. Задав желаемую частоту и необязательные параметры для заполнения пропущенных значений, мы можем манипулировать данными временного ряда, чтобы удовлетворить нашим потребностям. Этот метод обеспечивает гибкость и контроль над тем, как обрабатываются и анализируются данные временного ряда.