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
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().
<code class="python">df.loc[0, 'C'] = df.loc[0, 'D']</code>
<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>
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
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!