Menambah Lajur Dipetakan pada Bingkai Data Pandas
Apabila bekerja dengan panda, tambah lajur baharu dengan nilai dipetakan berdasarkan lajur sedia ada boleh menjadi tugas yang mudah. Walau bagaimanapun, pendekatan tertentu mungkin mengakibatkan ralat atau kesukaran.
Satu percubaan biasa adalah untuk menetapkan nilai yang dipetakan secara langsung ke lajur baharu:
<code class="python">df["B"] = equiv(df["A"])</code>
Walau bagaimanapun, ini akan gagal sebagai equiv, mewakili kamus, bukan fungsi boleh panggil.
Pendekatan lain yang mungkin tidak menghasilkan hasil yang diingini ialah menggunakan peta dengan fungsi lambda:
<code class="python">df["B"] = df["A"].map(lambda x: equiv[x])</code>
Ungkapan ini mungkin akan menimbulkan KeyError melainkan jika kekunci kamus betul-betul sepadan dengan nilai lajur.
Penyelesaian yang Betul
Kaedah yang betul untuk menambah lajur yang dipetakan ialah menggunakan peta terus dengan kamus:
<code class="python">df["B"] = df["A"].map(equiv)</code>
Pendekatan ini akan mencipta lajur baharu, B, dengan nilai yang dipetakan daripada kamus equiv. Jika kunci tidak wujud dalam kamus, baris yang sepadan akan diberikan NaN.
Contoh
Pertimbangkan DataFrame berikut:
<code class="python">df = pd.DataFrame({"A": [7001, 8001, 9001]}) equiv = {7001: 1, 8001: 2, 9001: 3}</code>
Memohon pemetaan yang betul akan menghasilkan hasil yang diingini:
<code class="python">df["B"] = df["A"].map(equiv) print(df) A B 0 7001 1 1 8001 2 2 9001 3</code>
Atas ialah kandungan terperinci Bagaimana untuk Menambah Lajur yang Dipetakan pada Pandas DataFrame dengan Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!