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

DDD
Lepaskan: 2024-10-18 07:28:29
asal
644 orang telah melayarinya

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

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

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!

sumber: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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!