Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Menambah Lajur yang Dipetakan pada Pandas DataFrame dengan Cekap?

Bagaimana untuk Menambah Lajur yang Dipetakan pada Pandas DataFrame dengan Cekap?

DDD
Lepaskan: 2024-10-29 02:27:29
asal
378 orang telah melayarinya

How to Efficiently Add a Mapped Column to a Pandas DataFrame?

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan