Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Memetakan Semula Nilai Lajur Pandas Menggunakan Kamus Sambil Mengekalkan Nilai NaN?

Bagaimana untuk Memetakan Semula Nilai Lajur Pandas Menggunakan Kamus Sambil Mengekalkan Nilai NaN?

Barbara Streisand
Barbara Streisandasal
2024-12-22 11:08:38823semak imbas

How to Remap Pandas Column Values Using a Dictionary While Keeping NaN Values?

Memetakan Semula Nilai dalam Lajur Panda Menggunakan Kamus Sambil Memelihara NaN

Dalam konteks pemprosesan bingkai data, selalunya perlu untuk mengubah nilai dalam lajur khusus berdasarkan pemetaan yang ditentukan. Pertimbangkan senario di mana anda mempunyai kamus yang mengandungi terjemahan nilai yang dipratentukan, seperti di = {1: "A", 2: "B"} dan anda mahu menggunakan pemetaan ini pada lajur panda bernama col1. Matlamatnya adalah untuk mengubah suai nilai dalam col1 dengan sewajarnya, sambil membiarkan nilai NaN tidak disentuh.

Satu pendekatan yang sangat berkesan untuk mencapai transformasi ini ialah dengan memanfaatkan kaedah .replace panda. Kaedah ini membenarkan penggantian nilai atau julat tertentu dengan nilai sasaran yang ditetapkan. Begini cara anda boleh melaksanakannya:

import pandas as pd
import numpy as np

# Example DataFrame
df = pd.DataFrame({'col2': {0: 'a', 1: 2, 2: np.nan}, 'col1': {0: 'w', 1: 1, 2: 2}})

# Mapping dictionary
di = {1: "A", 2: "B"}

# Apply value remapping using .replace
df.replace({"col1": di}, inplace=True)

# Output DataFrame with remapped values while preserving NaN
print(df)

Dalam contoh ini, kaedah .replace mengambil kamus sebagai hujah, dengan kunci mewakili nilai asal dalam col1 dan nilai mewakili nilai dipetakan semula yang dikehendaki. Dengan menetapkan parameter inplace kepada True, kerangka data asal diubah suai secara langsung, menjimatkan keperluan untuk penugasan semula.

Sebagai alternatif, jika anda lebih suka menggunakan transformasi secara khusus pada Siri col1, anda boleh menggunakan sintaks berikut:

df["col1"].replace(di, inplace=True)

Pendekatan ini memastikan bahawa nilai NaN kekal tidak terjejas, kerana NaN bukan kunci dalam pemetaan kamus.

Atas ialah kandungan terperinci Bagaimana untuk Memetakan Semula Nilai Lajur Pandas Menggunakan Kamus Sambil Mengekalkan Nilai NaN?. 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