Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Memetakan Nilai Kamus ke Lajur Panda Baharu?

Bagaimana untuk Memetakan Nilai Kamus ke Lajur Panda Baharu?

Linda Hamilton
Linda Hamiltonasal
2024-10-29 20:35:02539semak imbas

How to Map Dictionary Values to a New Pandas Column?

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!

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