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

Mary-Kate Olsen
Lepaskan: 2024-10-28 16:43:02
asal
583 orang telah melayarinya

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
Salin selepas log masuk

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']
Salin selepas log masuk

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']
Salin selepas log masuk

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
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!