Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengira Nilai Baris Berjujukan dalam Pandas DataFrame Menggunakan Apply dan Shifting?

Bagaimana untuk Mengira Nilai Baris Berjujukan dalam Pandas DataFrame Menggunakan Apply dan Shifting?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-28 16:43:02575semak imbas

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

Panda Memohon Pengiraan Nilai Baris Berjujukan dalam Bingkai Data

Apabila bekerja dengan bingkai data Pandas, anda mungkin menghadapi situasi di mana anda perlu menggunakan nilai baris sebelumnya dalam pengiraan. Walau bagaimanapun, ini boleh menimbulkan cabaran, terutamanya apabila nilai sebelumnya juga dikira dalam fungsi penggunaan yang sama.

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

Kami ingin mencipta lajur baharu, C , di mana:

  • Untuk 31-01-2015, C bersamaan dengan D.
  • Untuk semua baris lain, C dikira sebagai C baris sebelumnya didarab dengan baris A semasa , ditambah baris semasa B.

Menggunakan fungsi guna dan anjakan dengan keadaan if-else mungkin tidak berfungsi kerana ralat utama. Sebaliknya, kita boleh mengikuti langkah berikut:

Langkah 1: Mulakan Nilai Terbitan

Pertama, kita tetapkan nilai C untuk baris pertama supaya sama dengan D:

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

Langkah 2: Lelaran dan Kira

Seterusnya, kita melelang melalui baris yang tinggal dan mengira C menggunakan nilai C baris sebelumnya:

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

Keputusan:

  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
3 2015-02-03  10  100  3000  250

Atas ialah kandungan terperinci Bagaimana untuk Mengira Nilai Baris Berjujukan dalam Pandas DataFrame Menggunakan Apply dan Shifting?. 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