Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Mengira Lajur Berdasarkan Nilai Baris Sebelumnya dalam Panda Menggunakan Fungsi `apply()`?

Bagaimana untuk Mengira Lajur Berdasarkan Nilai Baris Sebelumnya dalam Panda Menggunakan Fungsi `apply()`?

Mary-Kate Olsen
Lepaskan: 2024-10-29 20:58:29
asal
744 orang telah melayarinya

How to Calculate a Column Based on Previous Row Values in Pandas Using the `apply()` Function?

Menggunakan Pengiraan dengan Nilai Baris Sebelumnya dalam Panda

Dalam Panda, menghadapi cabaran untuk memasukkan nilai baris sebelumnya ke dalam pengiraan semasa manipulasi data bukanlah tak biasa. Satu senario sedemikian melibatkan keperluan untuk menggunakan nilai baris sebelumnya apabila mengira lajur baharu menggunakan fungsi apply().

Pertimbangkan senario di mana kami mempunyai DataFrame dengan struktur 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

Matlamat kami adalah untuk mengisi lajur 'C' dengan nilai yang dikira. Untuk baris pertama, 'C' berasal daripada 'D'. Untuk baris berikutnya, 'C' dikira dengan mendarab nilai 'C' baris sebelumnya dengan nilai 'A' untuk baris semasa dan menambah nilai 'B'.

Pendekatan

Untuk mencapai ini, kami menggunakan gabungan pemulaan dan lelaran dalam fungsi apply().

  1. Mulakan nilai 'C' untuk baris pertama menggunakan nilai daripada 'D' .
<code class="python">df.loc[0, 'C'] = df.loc[0, 'D']</code>
Salin selepas log masuk
  1. Lelar melalui baris yang tinggal dan hitung nilai '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>
Salin selepas log masuk

Hasil

Pendekatan ini secara berkesan akan mengisi lajur 'C' dengan nilai terkira yang diingini:

Index_Date    A   B    C    D
================================
2015-01-31  10  10   10   10
2015-02-01   2   3   23   22
2015-02-02  10  60  290  280
2015-02-03  10  100  3000  250
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mengira Lajur Berdasarkan Nilai Baris Sebelumnya dalam Panda Menggunakan Fungsi `apply()`?. 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