Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengira Nilai Berdasarkan Data Baris Sebelumnya Menggunakan Fungsi penggunaan panda?

Bagaimana untuk Mengira Nilai Berdasarkan Data Baris Sebelumnya Menggunakan Fungsi penggunaan panda?

DDD
DDDasal
2024-10-28 03:40:01155semak imbas

How to Calculate Values Based on Previous Row Data Using pandas' apply Function?

Menggunakan Fungsi penggunaan Panda untuk Mengira Nilai Berdasarkan Nilai Baris Sebelumnya

Dalam Pandas, fungsi apply membenarkan penggunaan fungsi tersuai ke setiap baris DataFrame. Ini boleh terbukti sangat berguna apabila pengiraan memerlukan nilai rujukan daripada baris sebelumnya dalam DataFrame.

Pertimbangkan senario berikut: kami mempunyai DataFrame dengan lajur A, B, C dan D. Kami perlu mengira lajur C untuk baris pertama sebagai nilai lajur D. Selepas itu, C untuk baris berikutnya dikira dengan mendarab nilai C baris sebelumnya dengan baris A semasa dan menambah baris B semasa.

Walaupun percubaan menggunakan aplikasi dan anjakan, kami menghadapi ralat utama kerana pengiraan C juga berlaku dalam fungsi guna. Untuk menyelesaikan isu ini, kita boleh menggunakan pendekatan berikut:

  1. Secara Eksplisit Kira Baris Pertama:

    • Tetapkan nilai D kepada baris pertama C menggunakan df.loc[0, 'C'] = df.loc[0, 'D'].
  2. Lelar dan Kira Baris Seterusnya :

    • Gunakan gelung for untuk lelaran melalui baris yang tinggal, mengira C untuk setiap baris seperti berikut:

      • df.loc[i, 'C'] = df.loc[i-1, 'C'] * df.loc[i, 'A'] df.loc[i, 'B']

Dengan mengikuti pendekatan ini, kami memastikan bahawa C untuk setiap baris tersedia sebelum mengira nilai baris berikutnya. DataFrame yang terhasil akan sejajar dengan output yang dikehendaki:

  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

Atas ialah kandungan terperinci Bagaimana untuk Mengira Nilai Berdasarkan Data Baris Sebelumnya Menggunakan Fungsi penggunaan panda?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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