Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Memohon Fungsi pada Berbilang Lajur Bingkai Data Panda dan Buat Lajur Baharu?

Bagaimana untuk Memohon Fungsi pada Berbilang Lajur Bingkai Data Panda dan Buat Lajur Baharu?

DDD
DDDasal
2024-12-07 17:12:13911semak imbas

How to Apply a Function to Multiple Pandas Dataframe Columns and Create a New Column?

Menggunakan Fungsi pada Berbilang Lajur Bingkai Data Pandas

Situasinya adalah seperti berikut: fungsi dan bingkai data ditakrifkan, dan matlamatnya adalah untuk menggunakan fungsi pada dua lajur khusus kerangka data untuk menjana lajur baharu. Walau bagaimanapun, percubaan untuk menggunakan kaedah guna dengan fungsi menghasilkan ralat.

Untuk menangani isu ini, terdapat berbilang pendekatan:

Ungkapan Lambda dengan Nama Lajur

Penyelesaian ringkas dan boleh dibaca ialah menggunakan ungkapan lambda dalam permohonan kaedah:

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

Pendekatan ini secara langsung menggunakan nama lajur dan bukannya indeks berangka, menjadikannya kurang terdedah kepada ralat.

Contoh dengan Contoh Data

Pertimbangkan contoh data:

df = pd.DataFrame({'ID':['1', '2', '3'], 'col_1': [0, 2, 3], 'col_2':[1, 4, 5]})
mylist = ['a', 'b', 'c', 'd', 'e', 'f']

Menjalankan kod sebelumnya akan menghasilkan kod baharu lajur, col_3, mengandungi hasil yang diingini:

  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]

Kurungan Segiempat untuk Nama Lajur Bukan Standard

Jika nama lajur mengandungi ruang atau sepadan dengan atribut bingkai data sedia ada, kurungan empat segi boleh digunakan:

df['col_3'] = df.apply(lambda x: f(x['col 1'], x['col 2']), axis=1)

Atas ialah kandungan terperinci Bagaimana untuk Memohon Fungsi pada Berbilang Lajur Bingkai Data Panda dan Buat 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