Pandas で前の行の値を使用した計算を適用する
Pandas では、データ操作中に前の行の値を計算に組み込むという課題が発生します。珍しい。このようなシナリオの 1 つは、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」は「D」から派生します。後続の行の場合、「C」は、前の行の「C」値と現在の行の「A」値を乗算し、「B」値を加算することによって計算されます。
Approach
これを実現するには、apply() 関数内で初期化と反復を組み合わせて使用します。
df.loc[0, 'C'] = df.loc[0, 'D']
for i in range(1, len(df)):
df.loc[i, 'C'] = df.loc[i - 1, 'C'] * df.loc[i, 'A'] df.loc[i, 'B']
Result
このアプローチでは、「C」列に目的の計算値を効果的に入力します:
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 2015-02-03 10 100 3000 250
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3