Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Memohon Fungsi pada Berbilang Lajur dalam Pandas DataFrame?

Bagaimana untuk Memohon Fungsi pada Berbilang Lajur dalam Pandas DataFrame?

Susan Sarandon
Susan Sarandonasal
2024-12-08 15:16:12529semak imbas

How to Apply a Function to Multiple Columns in a Pandas DataFrame?

Menggunakan Fungsi pada Berbilang Lajur Bingkai Data Pandas

Andaikan kami mempunyai set data dalam kerangka data Pandas dengan berbilang lajur dan kami mahu gunakan fungsi tersuai pada dua daripada lajur tersebut. Ini boleh menjadi tugas biasa dalam manipulasi dan analisis data. Berikut ialah panduan langkah demi langkah untuk mencapai matlamat ini:

1. Takrifkan Fungsi:

Tentukan fungsi tersuai yang mengambil dua input, mewakili nilai daripada dua lajur. Fungsi ini harus melaksanakan operasi yang diingini pada input ini.

2. Gunakan Fungsi Menggunakan Lambda:

Panda menyediakan fungsi lambda yang membolehkan kami menggunakan fungsi pada setiap baris bingkai data. Kami boleh memanfaatkan ini untuk menggunakan fungsi tersuai kami pada lajur yang dipilih.

Sintaks untuk menggunakan fungsi pada berbilang lajur menggunakan lambda ialah:

df['new_column_name'] = df.apply(lambda x: your_function(x.column_1, x.column_2), axis=1)

Di mana:

  • new_column_name ialah nama lajur baharu yang akan menyimpan hasil fungsi.
  • fungsi_anda ialah fungsi yang ditentukan pengguna yang mengambil dua input dan mengembalikan output yang diingini.
  • x mewakili setiap baris bingkai data dan x.column_1 dan x.column_2 mengakses nilai daripada lajur yang ditentukan.
  • axis=1 menunjukkan bahawa fungsi digunakan pada setiap baris, bukan setiap baris lajur.

3. Contoh:

Pertimbangkan contoh kerangka data berikut:

df = pd.DataFrame({'ID':['1','2','3'], 'col_1': [0,2,3], 'col_2':[1,4,5]})

Andaikan kita ingin mencipta lajur baharu dipanggil 'col_3' yang mengandungi subsenarai senarai asal mylist berdasarkan nilai dalam col_1 dan col_2. Kita boleh mentakrifkan fungsi get_sublist seperti berikut:

def get_sublist(sta, end):
    return ['a', 'b', 'c', 'd', 'e', 'f'][sta:end+1]

Sekarang, kita boleh menggunakan fungsi ini menggunakan lambda sebagai:

df['col_3'] = df.apply(lambda x: get_sublist(x.col_1, x.col_2), axis=1)

Ini mencipta lajur baharu 'col_3' dalam rangka data dengan subsenarai yang dikehendaki.

4. Alternatif:

Menggunakan lambda ialah pendekatan ringkas dan serba boleh untuk menggunakan fungsi pada berbilang lajur bingkai data. Walau bagaimanapun, jika anda lebih suka cara yang lebih jelas, anda juga boleh menggunakan kaedah apply() dengan fungsi tersuai yang mengambil Siri sebagai input. Pendekatan ini melibatkan penentuan fungsi yang mengambil satu input yang mewakili baris dan kemudian memanipulasi baris tertentu itu mengikut keperluan.

Atas ialah kandungan terperinci Bagaimana untuk Memohon Fungsi pada Berbilang Lajur dalam Pandas DataFrame?. 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