Heim >Backend-Entwicklung >Python-Tutorial >Wie ordne ich Pandas-Spaltenwerte mithilfe eines Wörterbuchs neu zu und behalte dabei die NaN-Werte bei?

Wie ordne ich Pandas-Spaltenwerte mithilfe eines Wörterbuchs neu zu und behalte dabei die NaN-Werte bei?

Barbara Streisand
Barbara StreisandOriginal
2024-12-22 11:08:38823Durchsuche

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

Neuzuordnung von Werten in Pandas-Spalten mithilfe des Wörterbuchs unter Beibehaltung von NaN

Im Zusammenhang mit der Verarbeitung von Datenrahmen ist es häufig erforderlich, Werte in a zu ändern spezifische Spalte basierend auf definierten Zuordnungen. Stellen Sie sich ein Szenario vor, in dem Sie über ein Wörterbuch verfügen, das vordefinierte Wertübersetzungen enthält, z. B. di = {1: „A“, 2: „B“}, und Sie diese Zuordnungen auf eine Pandas-Spalte namens col1 anwenden möchten. Das Ziel besteht darin, die Werte in Spalte 1 entsprechend zu ändern und dabei die NaN-Werte unverändert zu lassen.

Ein äußerst effektiver Ansatz, um diese Transformation zu erreichen, ist die Nutzung der .replace-Methode von Pandas. Diese Methode ermöglicht das Ersetzen bestimmter Werte oder Bereiche durch festgelegte Zielwerte. So können Sie es implementieren:

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)

In diesem Beispiel verwendet die .replace-Methode ein Wörterbuch als Argument, wobei die Schlüssel die ursprünglichen Werte in Spalte 1 darstellen und die Werte die gewünschten neu zugeordneten Werte darstellen. Indem Sie den Inplace-Parameter auf „True“ setzen, wird der ursprüngliche Datenrahmen direkt geändert, sodass keine Neuzuweisung erforderlich ist.

Alternativ können Sie die folgende Syntax verwenden, wenn Sie die Transformation lieber speziell auf die col1-Serie anwenden möchten:

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

Dieser Ansatz stellt sicher, dass NaN-Werte unberührt bleiben, da NaN kein Schlüssel im Mapping-Wörterbuch ist.

Das obige ist der detaillierte Inhalt vonWie ordne ich Pandas-Spaltenwerte mithilfe eines Wörterbuchs neu zu und behalte dabei die NaN-Werte bei?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn