Pandas DataFrame の asfreq メソッド

PandasPandasBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

PythonのpandasライブラリのDataFrame.asfreq()メソッドは、時系列を指定された頻度に変換するために使用されます。欠損値をパディングまたはバックフィルする方法を提供します。このメソッドをDataFrameに適用することで、時系列を目的の頻度に変換し、頻度をアップサンプリングし、欠損値を埋めることができます。

VMのヒント

VMの起動が完了した後、左上隅をクリックしてノートブックタブに切り替え、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{{"Pandas DataFrame の asfreq メソッド"}} pandas/time_series_analysis -.-> lab-68584{{"Pandas DataFrame の asfreq メソッド"}} pandas/reshape_data -.-> lab-68584{{"Pandas DataFrame の asfreq メソッド"}} python/date_time -.-> lab-68584{{"Pandas DataFrame の asfreq メソッド"}} python/data_collections -.-> lab-68584{{"Pandas DataFrame の asfreq メソッド"}} python/data_analysis -.-> lab-68584{{"Pandas DataFrame の asfreq メソッド"}} 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を作成し、その後、1時間ごとの頻度に変換します。元の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の両方を表示します。

まとめ

pandasのDataFrame.asfreq()メソッドは、時系列データの変換、アップサンプリング、欠損値の埋めに役立つツールです。目的の頻度と欠損値の埋めに関するオプションパラメータを指定することで、時系列データを必要に合わせて操作することができます。このメソッドは、時系列データの処理と分析方法に柔軟性と制御を提供します。