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!