Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menyelesaikan Ralat dalam Fungsi \'apply\' Pandas Apabila Mengendalikan Berbilang Lajur?

Bagaimana untuk Menyelesaikan Ralat dalam Fungsi \'apply\' Pandas Apabila Mengendalikan Berbilang Lajur?

DDD
DDDasal
2024-10-18 07:28:29767semak imbas

How to Resolve Errors in Pandas 'apply' Function When Handling Multiple Columns?

Masalah dengan Pandas 'apply' Fungsi Mengendalikan Berbilang Lajur?

Pustaka Pandas menyediakan fungsi 'apply' untuk transformasi mengikut baris, termasuk operasi yang melibatkan berbilang lajur. Walau bagaimanapun, pengguna mungkin menghadapi masalah apabila cuba mengakses lajur tertentu dalam fungsi.

Satu isu tersebut ditunjukkan dalam soalan, di mana pengguna cuba menggunakan fungsi yang mengambil dua nilai skalar ('a' dan ' c') sebagai inputnya. Walau bagaimanapun, mesej ralat menunjukkan bahawa nama 'a' tidak dikenali.

Penyelesaian kepada masalah ini terletak pada penggunaan sintaks yang betul untuk merujuk lajur dalam fungsi 'apply'. Daripada menggunakan nama lajur kosong ('a'), pengguna mesti melampirkannya dalam kurungan segi empat sama ('[' dan ']'). Sebagai contoh, untuk mengakses lajur 'a', ia hendaklah ditulis sebagai 'baris['a']'.

Kod Disemak:

<code class="python">df['Value'] = df.apply(lambda row: my_test(row['a'], row['c']), axis=1)</code>

Pertimbangan Tambahan:

Apabila mentakrifkan fungsi tersuai untuk digunakan dengan 'apply', adalah penting untuk memastikan ia beroperasi pada jenis data yang betul. Dalam contoh dikemas kini yang disediakan, fungsi 'my_test' ditakrifkan untuk mengira perbezaan kumulatif antara nilai input ('a') dan lajur 'a' untuk semua baris dalam DataFrame. Ini memerlukan kedua-dua 'a' dan 'df'a'' ialah nilai angka.

Sintaks Alternatif:

Untuk kemudahan, Pandas menyediakan sintaks alternatif untuk 'apply ' apabila beroperasi pada berbilang lajur. Dengan menyatakan nama lajur sebagai argumen kepada fungsi, nilai lajur boleh diakses terus dalam fungsi.

Contoh:

<code class="python">def my_test2(row):
    return row['a'] % row['c']

df['Value'] = df.apply(my_test2, axis=1)</code>

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat dalam Fungsi \'apply\' Pandas Apabila Mengendalikan Berbilang Lajur?. 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