Dilema Permulaan:
Menghadapi cabaran yang kelihatan tidak dapat diatasi cuba untuk memasukkan lajur baharu ke dalam Pandas DataFrame, dengan nilai dipetakan berdasarkan data lajur sedia ada. Menggunakan kedua-dua fungsi lambda dan kamus mengakibatkan ralat atau hasil yang tidak dijangka.
Penyelesaian:
Pendekatan yang betul terletak pada penggunaan fungsi map() bersama-sama dengan kamus sasaran. Sintaksnya ialah: df["B"] = df["A"].map(equiv).
Penjelasan:
Fungsi map() menggunakan operasi kepada setiap elemen dalam lajur tertentu. Dalam kes ini, operasi mendapatkan semula nilai yang dipetakan daripada equiv kamus berdasarkan kekunci yang disediakan oleh data lajur.
Contoh:
Pertimbangkan kod berikut:
<code class="python">import pandas as pd equiv = {7001:1, 8001:2, 9001:3} df = pd.DataFrame( {"A": [7001, 8001, 9001]} ) df["B"] = df["A"].map(equiv) print(df)</code>
Output:
A B 0 7001 1 1 8001 2 2 9001 3
Pendekatan ini menambahkan nilai yang dipetakan pada lajur baharu B secara berkesan. Selain itu, ia mengendalikan kekunci yang hilang dengan anggun dengan mengembalikan NaN.
Pertimbangan Tambahan:
Atas ialah kandungan terperinci Bagaimana untuk Memetakan Nilai Kamus untuk Mencipta Lajur Baharu dalam Pandas DataFrame?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!