ホームページ  >  記事  >  バックエンド開発  >  適用とシフトを使用して Pandas DataFrame の連続する行の値を計算する方法

適用とシフトを使用して Pandas DataFrame の連続する行の値を計算する方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-28 16:43:02575ブラウズ

How to Calculate Sequential Row Values in a Pandas DataFrame Using Apply and Shifting?

Pandas はデータフレーム内の順次行値の計算を適用します

Pandas データフレームを使用する場合、値を使用する必要がある状況が発生することがあります。計算の前の行の。ただし、これは、特に前の値も同じ適用関数内で計算される場合に問題が発生する可能性があります。

次のデータフレームを考えてみましょう:

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 の場合、C は D に等しい。
  • 他のすべての行の場合、C は前の行の C に現在の行の A を乗算して計算されます。

if-else 条件を伴う適用関数とシフトの使用は、キー エラーが原因で機能しない可能性があります。代わりに、次の手順に従うことができます:

ステップ 1: 派生値を初期化する

まず、最初の行の C 値を D:

df.loc[0, 'C'] = df.loc[0, 'D']

ステップ 2: 反復と計算

次に、残りの行を反復し、前の行の C 値を使用して C を計算します。

for i in range(1, len(df)):
    df.loc[i, 'C'] = df.loc[i-1, 'C'] * df.loc[i, 'A'] + df.loc[i, 'B']

結果:

以上が適用とシフトを使用して Pandas DataFrame の連続する行の値を計算する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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