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!