Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Memetakan Nilai Kamus untuk Mencipta Lajur Baharu dalam Pandas DataFrame?

Bagaimana untuk Memetakan Nilai Kamus untuk Mencipta Lajur Baharu dalam Pandas DataFrame?

Susan Sarandon
Susan Sarandonasal
2024-10-28 20:21:30129semak imbas

How to Map Dictionary Values to Create a New Column in a Pandas DataFrame?

Mengatasi Kekecewaan Pemetaan Panda: Menambah Lajur dengan Nilai Kamus Dipeta

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:

  • Pengendalian Kunci: Jika kunci dalam kamus tidak sepadan dengan mana-mana elemen dalam lajur, nilai yang dipetakan menjadi NaN.
  • Prestasi: Operasi pemetaan boleh menjadi intensif secara pengiraan untuk set data yang besar. Pertimbangkan teknik pengoptimuman jika perlu.

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!

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