ホームページ  >  記事  >  バックエンド開発  >  `apply()` で前の行の値を使用して DataFrame 内の列を計算する方法

`apply()` で前の行の値を使用して DataFrame 内の列を計算する方法

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-03 19:26:02408ブラウズ

How to Calculate a Column in a DataFrame Using Previous Row Values with `apply()`?

apply() を使用した以前の値を考慮した DataFrame の反復

pandas では、DataFrame の各行に関数を適用するために apply() 関数が一般的に使用されます。 。ただし、前の行の値も同じ apply() メソッドを使用して計算される場合に問題が発生します。

次の DataFrame について考えます:

Index_Date A B C D
2015-01-31 10 10 NaN 10
2015-02-01 2 3 NaN 22
2015-02-02 10 60 NaN 280
2015-02-03 10 100 NaN 250

目的は列 C を派生することです:

  • 2015-01-31 の場合、D の値に設定します。
  • 後続の行の場合、C の前の行の値に A の現在の行の値を乗算し、それに加算します。 B の現在の行の値。

解決策:

これを達成するには、まず C の初期値を 2015-01-31 に設定します:

<code class="python">df.loc[0, 'C'] = df.loc[0, 'D']</code>

次に、残りの行を反復処理し、必要な計算で C 値を更新します:

<code class="python">for i in range(1, len(df)):
    df.loc[i, 'C'] = df.loc[i-1, 'C'] * df.loc[i, 'A'] + df.loc[i, 'B']</code>

これらの操作後の最終データフレーム:

Index_Date A B C D
2015-01-31 10 10 10 10
2015-02-01 2 3 23 22
2015-02-02 10 60 290 280

以上が`apply()` で前の行の値を使用して DataFrame 内の列を計算する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。