Dalam panda, fungsi apply() biasanya digunakan untuk menggunakan fungsi pada setiap baris DataFrame . Walau bagaimanapun, cabaran timbul apabila nilai baris sebelumnya juga dikira menggunakan kaedah apply() yang sama.
Pertimbangkan DataFrame 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 |
Objektifnya adalah untuk mendapatkan Lajur C:
Untuk mencapai ini, kami mula-mula menetapkan nilai awal C untuk 31-01-2015:
<code class="python">df.loc[0, 'C'] = df.loc[0, 'D']</code>
Kemudian, kami mengulangi baris yang tinggal dan mengemas kini nilai C dengan pengiraan yang diingini:
<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>
DataFrame akhir selepas operasi ini:
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 |
Atas ialah kandungan terperinci Bagaimana untuk Mengira Lajur dalam DataFrame Menggunakan Nilai Baris Sebelumnya dengan `apply()`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!