Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Memasukkan Nilai Baris Sebelumnya ke dalam Pengiraan \'apply\' Panda dengan Nilai Terbitan?

Bagaimana untuk Memasukkan Nilai Baris Sebelumnya ke dalam Pengiraan \'apply\' Panda dengan Nilai Terbitan?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-27 10:23:30306semak imbas

How to Incorporate Previous Row Values into Pandas 'apply' Calculations with Derived Values?

Menggunakan Panda untuk Menggabungkan Nilai Baris Terdahulu dalam 'menggunakan' Pengiraan dengan Nilai Terbitan

Apabila bekerja dengan bingkai data dalam Panda, ia selalunya diperlukan untuk melakukan pengiraan yang melibatkan penggunaan nilai baris sebelumnya. Ini boleh mencabar apabila nilai sebelumnya juga dikira dalam fungsi 'guna'.

Pertimbangkan rangka data berikut:

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

Untuk mengira Lajur C, kita mulakan dengan menyalin nilai D ke baris pertama:

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

Sekarang, untuk baris berikutnya, kita boleh lelaran melalui kerangka data dan menggunakan gelung untuk mengisi nilai yang dikira untuk Lajur 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>

Gelung ini memastikan bahawa nilai C untuk setiap baris ditentukan oleh nilai sebelumnya, serta nilai A dan B yang sepadan. Bingkai data yang terhasil akan kelihatan seperti ini:

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

Dengan mengikuti ini pendekatan, anda boleh menggabungkan nilai baris sebelumnya dengan berkesan ke dalam pengiraan 'gunakan', walaupun apabila nilai sebelumnya diperoleh daripada fungsi 'guna' yang sama.

Atas ialah kandungan terperinci Bagaimana untuk Memasukkan Nilai Baris Sebelumnya ke dalam Pengiraan \'apply\' Panda dengan Nilai Terbitan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn