Memetakan Nilai Kamus ke Lajur Panda Baharu
Apabila berurusan dengan bingkai data Pandas, mungkin terdapat keadaan yang perlu menambah lajur baharu berdasarkan pada nilai yang dipetakan daripada lajur sedia ada. Untuk mencapai matlamat ini, salah tanggapan biasa ialah menggunakan fungsi equiv sebagai parameter dalam tugasan lajur baharu. Walau bagaimanapun, ini akan mengakibatkan ralat kerana equiv bukan fungsi boleh panggil.
Pendekatan yang betul ialah menggunakan fungsi peta Pandas. Sintaks untuk menambah lajur baharu berdasarkan nilai dipetakan daripada kamus adalah seperti berikut:
df["new_column"] = df["existing_column"].map(mapping_function)
Fungsi pemetaan ialah fungsi yang menerima nilai lajur sedia ada dan mengembalikan nilai dipetakan yang dikehendaki. Dalam kes ini, fungsi pemetaan ialah fungsi lambda yang menggunakan equiv kamus untuk mendapatkan semula nilai dipetakan yang sepadan:
mapping_function = lambda x: equiv[x]
Dengan menggunakan kaedah ini, kerangka data df akan dikemas kini dengan lajur baharu "B" yang mengandungi nilai yang dipetakan daripada lajur "A" berdasarkan kamus yang disediakan:
import pandas as pd equiv = {7001:1, 8001:2, 9001:3} df = pd.DataFrame({"A": [7001, 8001, 9001]}) df["B"] = df["A"].map(lambda x: equiv[x]) print(df)
Output:
A B 0 7001 1 1 8001 2 2 9001 3
Kaedah ini dengan lancar mengendalikan senario di mana kunci tidak terdapat dalam kamus, seperti yang ditunjukkan di bawah:
equiv = {7001:1, 8001:2, 9001:3} df = pd.DataFrame({"A": [7001, 8001, 9001, 10000]}) df["B"] = df["A"].map(lambda x: equiv[x]) print(df)
Output:
A B 0 7001 1 1 8001 2 2 9001 3 3 10000 NaN
Atas ialah kandungan terperinci Bagaimana untuk Memetakan Nilai Kamus ke Lajur Panda Baharu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!