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
Lepaskan: 2024-12-27 12:16:14
asal
780 orang telah melayarinya

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

Dan fungsi:

def get_sublist(sta, end):
    return mylist[sta:end+1]
Salin selepas log masuk

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

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

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!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan