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 を派生することです:
これを達成するには、まず 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 サイトの他の関連記事を参照してください。