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

PandasPandasBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

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

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

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

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

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL pandas(("Pandas")) -.-> pandas/DataCleaningGroup(["Data Cleaning"]) pandas(("Pandas")) -.-> pandas/AdvancedOperationsGroup(["Advanced Operations"]) python(("Python")) -.-> python/PythonStandardLibraryGroup(["Python Standard Library"]) python(("Python")) -.-> python/DataScienceandMachineLearningGroup(["Data Science and Machine Learning"]) pandas/DataCleaningGroup -.-> pandas/handle_missing_values("Handling Missing Values") pandas/AdvancedOperationsGroup -.-> pandas/time_series_analysis("Time Series Analysis") pandas/AdvancedOperationsGroup -.-> pandas/reshape_data("Reshaping Data") python/PythonStandardLibraryGroup -.-> python/date_time("Date and Time") python/PythonStandardLibraryGroup -.-> python/data_collections("Data Collections") python/DataScienceandMachineLearningGroup -.-> python/data_analysis("Data Analysis") subgraph Lab Skills pandas/handle_missing_values -.-> lab-68584{{"Метод DataFrame.asfreq() в Pandas"}} pandas/time_series_analysis -.-> lab-68584{{"Метод DataFrame.asfreq() в Pandas"}} pandas/reshape_data -.-> lab-68584{{"Метод DataFrame.asfreq() в Pandas"}} python/date_time -.-> lab-68584{{"Метод DataFrame.asfreq() в Pandas"}} python/data_collections -.-> lab-68584{{"Метод DataFrame.asfreq() в Pandas"}} python/data_analysis -.-> lab-68584{{"Метод DataFrame.asfreq() в Pandas"}} end

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

Мы можем использовать метод 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 - это полезный инструмент для преобразования, перевыборки и заполнения пропущенных значений в временных рядах данных. Задав желаемую частоту и необязательные параметры для заполнения пропущенных значений, мы можем манипулировать данными временного ряда, чтобы удовлетворить нашим потребностям. Этот метод обеспечивает гибкость и контроль над тем, как обрабатываются и анализируются данные временного ряда.