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

Mary-Kate Olsen
リリース: 2024-10-28 16:43:02
オリジナル
583 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!