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

Bagaimana untuk Mengira Lajur dalam DataFrame Menggunakan Nilai Baris Sebelumnya dengan `apply()`?

Linda Hamilton
Lepaskan: 2024-11-03 19:26:02
asal
543 orang telah melayarinya

How to Calculate a Column in a DataFrame Using Previous Row Values with `apply()`?

Lelaran Melalui DataFrames dengan Pertimbangan Nilai Terdahulu Menggunakan apply()

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 31-01-2015, tetapkannya kepada nilai D.
  • Untuk baris berikutnya, darabkan nilai baris sebelumnya C dengan nilai baris semasa A dan tambahkannya pada nilai baris semasa B.

Penyelesaian:

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

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

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!

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