ホームページ > バックエンド開発 > Python チュートリアル > Python で時系列データをリサンプリングする方法

Python で時系列データをリサンプリングする方法

王林
リリース: 2023-08-29 20:13:05
転載
917 人が閲覧しました

Python で時系列データをリサンプリングする方法

時系列データは、一定の時間間隔で収集された一連の観測値です。データは、金融、経済、健康、環境科学など、あらゆる分野から取得できます。当社が収集する時系列データは、周波数や解像度が異なる場合があり、当社の分析およびデータ モデリング プロセスには適さない場合があります。この場合、アップサンプリングまたはダウンサンプリングによって時系列データをリサンプリングし、それによって時系列の周波数または解像度を変更できます。この記事では、時系列データをアップサンプリングまたはダウンサンプリングするさまざまな方法を紹介します。

アップサンプリング

アップサンプリングとは、時系列データの周波数を増やすことを意味します。これは通常、より高い解像度またはより頻繁な観測が必要な場合に行われます。Python には、線形内挿、最近隣内挿など、時系列データをアップサンプリングするためのいくつかの方法が用意されています。および多項式補間。

###構文### リーリー

ここにあります、

  • resample

    関数は、時系列データをリサンプリングするために pandas ライブラリによって提供されるメソッドです。これは DataFrame に適用され、リサンプリングに必要な頻度を指定するルール パラメーターを受け取ります。引数 (*args) とキーワード引数 (**kwargs) を指定すると、集計方法の指定や欠損値の処理など、リサンプリング動作をカスタマイズできます。

    asfreq
  • メソッドは、時系列データの周波数を変換するために resample 関数と組み合わせて使用​​されます。このメソッドは、出力に必要な周波数文字列を指定する freq パラメーターを受け取ります。オプションのメソッド パラメーターを使用すると、前方充填、後方充填、補間など、リサンプリング プロセス中に導入された欠損値の処理方法を指定できます。
  • 内挿法は、時系列データの欠損値やギャップを埋めるために使用されます。指定された方法 (「線形」、「最近接」、「スプライン」など) に従って補間して、既存の観測間の値を推定します。追加のパラメーターは、補間の軸、連続する NaN 値のパディング制限、およびデータフレームをその場で変更するか新しいデータフレームを返すかを制御できます。

    ###線形補間###
  • 線形補間は、時系列データのアップサンプリングに使用されます。データポイント間に直線を引いてギャップを埋めます。線形補間は、pandas ライブラリの resample 関数を使用して実装できます。
  • Example

    の中国語訳は次のとおりです:
  • Example

以下の例では、不連続な日付の 3 つの観測値を含む時系列データフレームがあります。「日付」列を日時形式に変換し、インデックスとして設定します。データをアップサンプリングするためにリサンプル関数が使用されます。 asfreq メソッドを使用して毎日の頻度 (「D」) に変換します。最後に、'linear' オプションを指定した interpolate メソッドは、線形補間を使用してデータ ポイント間のギャップを埋めます。データフレーム df_upsampled には、補間値を含むアップサンプリングされた時系列データが含まれます.

リーリー ###出力### リーリー

最近傍補間

最近傍補間は、データ ポイント間のギャップを最も近い利用可能な観測値で埋める単純な方法です。この方法は、時系列が急激な変化を示す場合、または観測の順序が重要な場合に役立ちます。パンダの補間メソッドは次のとおりです。最近傍補間を実行するには、「nearest」オプションとともに使用します。

Example

の中国語訳は次のとおりです:

Example

上の例では、前と同じ元のデータフレームを使用します。「D」周波数でリサンプリングした後、「最近接」オプションを指定した内挿メソッドは、利用可能な最も近い観測値をコピーすることによってギャップを埋めます。結果のデータフレーム、df_upsampledは、最近傍補間による毎日の頻度を持ちます。

リーリー ###出力### リーリー

ダウンサンプリング

ダウンサンプリングは、時系列データの頻度を減らすために使用され、通常はデータのより広い視野を取得したり、分析を簡素化したりするために使用されます。 Python は、指定された時間間隔における値の平均化、合計、最大化など、さまざまなダウンサンプリング手法を提供します。

###構文### リーリー

ここでは、

平均、合計、最大

などの集計方法がリサンプリング後に適用され、各リサンプリング間隔内のグループ化された観測値を表す単一の値が計算されます。これらの方法は通常、データをダウンサンプリングするときに使用されます。これらは、リサンプリングされた DataFrame に直接適用することも、リサンプリング関数と組み合わせて使用​​して、適切なルールを指定して特定の頻度 (週次、月次など) に基づいてデータを集計することもできます。

平均ダウンサンプリング

の中国語訳は次のとおりです:

平均ダウンサンプリング

平均ダウンサンプリングでは、各間隔内のデータ ポイントの平均が計算されます。この方法は、高頻度のデータを処理して区間ごとの代表値を求める場合に便利です。リサンプル関数を平均法と組み合わせて使用​​すると、平均ダウンサンプリングを実行できます。

Example

的中文翻译为:

示例

In the below example, we start with a daily time series DataFrame spanning the entire month of June 2023. The resample function with the 'W' frequency downsamples the data to weekly intervals. By applying the mean method, we obtain the average value within each week. The resulting DataFrame, df_downsampled, contains the mean-downsampled time series data.

import pandas as pd

# Create a sample time series DataFrame with daily frequency
data = {'Date': pd.date_range(start='2023-06-01', end='2023-06-30', freq='D'),
        'Value': range(30)}
df = pd.DataFrame(data)
df.set_index('Date', inplace=True)

# Downsampling using mean
df_downsampled = df.resample('W').mean()

# Print the downsampled DataFrame
print(df_downsampled)
ログイン後にコピー

输出

            Value
Date             
2023-06-04    1.5
2023-06-11    7.0
2023-06-18   14.0
2023-06-25   21.0
2023-07-02   27.0
ログイン後にコピー

Maximum Downsampling

最大降采样计算并设置每个间隔内的最高值。此方法适用于识别时间序列中的峰值或极端事件。在前面的示例中使用max而不是mean或sum允许我们执行最大降采样。

Example

的中文翻译为:

示例

In the below example, we start with a daily time series DataFrame spanning the entire month of June 2023. The resample function with the 'W' frequency downsamples the data to weekly intervals. By applying the max method, we obtain the Maximum value within each week. The resulting DataFrame, df_downsampled, contains the maximum-downsampled time series data.

import pandas as pd
# Create a sample time series DataFrame with daily frequency
data = {'Date': pd.date_range(start='2023-06-01', end='2023-06-30', freq='D'),
        'Value': range(30)}
df = pd.DataFrame(data)
df.set_index('Date', inplace=True)

# Downsampling using mean
df_downsampled = df.resample('W').max()

# Print the downsampled DataFrame
print(df_downsampled)
ログイン後にコピー

输出

            Value
Date             
2023-06-04      3
2023-06-11     10
2023-06-18     17
2023-06-25     24
2023-07-02     29
ログイン後にコピー

结论

在本文中,我们讨论了如何使用Python对时间序列数据进行重新采样。Python提供了各种上采样和下采样技术。我们探讨了线性和最近邻插值用于上采样,以及均值和最大值插值用于下采样。您可以根据手头的问题使用任何一种上采样或下采样技术。

以上がPython で時系列データをリサンプリングする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート