Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Menggunakan Fungsi Tersuai pada Lajur DataFrame Berbilang Panda untuk Mencipta Lajur Baharu?

Bagaimanakah Saya Boleh Menggunakan Fungsi Tersuai pada Lajur DataFrame Berbilang Panda untuk Mencipta Lajur Baharu?

Linda Hamilton
Linda Hamiltonasal
2024-12-27 12:16:14774semak imbas

How Can I Apply a Custom Function to Multiple Pandas DataFrame Columns to Create a New Column?

Menggunakan Fungsi pada Berbilang Lajur dalam Pandas DataFrame

Pertimbangkan situasi berikut di mana anda mempunyai DataFrame yang mengandungi berbilang lajur dan fungsi tersuai anda mahu gunakan pada lajur tersebut mengikut elemen untuk mencipta yang baharu lajur.

Masalah:

Andaikan anda mempunyai DataFrame dengan tiga lajur:

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

Dan fungsi:

def get_sublist(sta, end):
    return mylist[sta:end+1]

Matlamat anda adalah untuk menggunakan get_sublist pada lajur 'col_1' dan 'col_2' df ke dapatkan lajur baharu 'col_3' yang mengandungi subsenarai 'mylist' yang sepadan.

Penyelesaian:

Untuk mencapai ini, anda boleh menggunakan operasi Panda berikut:

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

Berikut ialah pecahan kod:

  • df.apply(): Menggunakan elemen fungsi yang diberikan pada setiap baris DataFrame.
  • lambda x: Fungsi tanpa nama yang menerima argumen tunggal x, yang mewakili baris DataFrame.
  • x: Objek baris DataFrame yang mengandungi nilai 'col_1' dan lajur 'col_2' untuk lelaran semasa.
  • get_sublist(x.col_1, x.col_2): Memanggil fungsi get_sublist dengan nilai 'col_1' dan 'col_2' daripada baris semasa.
  • axis=1: Menentukan bahawa fungsi harus digunakan merentasi setiap baris DataFrame, menghasilkan lajur.

Menggunakan kaedah ini, DataFrame yang terhasil akan mempunyai struktur berikut:

  ID  col_1  col_2            col_3
0  1      0      1       ['a', 'b']
1  2      2      4  ['c', 'd', 'e']
2  3      3      5  ['d', 'e', 'f']

Perhatikan bahawa penyelesaian ini membenarkan anda menghantar sebarang fungsi tersuai kepada kaedah apply() dan gunakannya pada berbilang lajur secara serentak. Dengan mengakses nilai lajur melalui x.col_name, anda boleh menggunakan nama lajur dengan selamat walaupun ia mengandungi ruang atau mempunyai nama yang sama seperti atribut DataFrame sedia ada.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Fungsi Tersuai pada Lajur DataFrame Berbilang Panda untuk Mencipta Lajur Baharu?. 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