Maison > développement back-end > Tutoriel Python > Comment remapper les valeurs des colonnes Pandas à l'aide d'un dictionnaire tout en conservant les valeurs NaN ?

Comment remapper les valeurs des colonnes Pandas à l'aide d'un dictionnaire tout en conservant les valeurs NaN ?

Barbara Streisand
Libérer: 2024-12-22 11:08:38
original
821 Les gens l'ont consulté

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

Remappage des valeurs dans la colonne Pandas à l'aide du dictionnaire tout en préservant NaN

Dans le contexte du traitement des trames de données, il est souvent nécessaire de modifier les valeurs dans un colonne spécifique basée sur des mappages définis. Considérons un scénario dans lequel vous disposez d'un dictionnaire contenant des traductions de valeurs prédéfinies, telles que di = {1 : "A", 2 : "B"}, et vous souhaitez appliquer ces mappages à une colonne pandas nommée col1. L'objectif est de modifier les valeurs de col1 en conséquence, tout en laissant les valeurs NaN intactes.

Une approche très efficace pour réaliser cette transformation consiste à tirer parti de la méthode .replace de pandas. Cette méthode permet de remplacer des valeurs ou des plages spécifiques par des valeurs cibles désignées. Voici comment vous pouvez l'implémenter :

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)
Copier après la connexion

Dans cet exemple, la méthode .replace prend un dictionnaire comme argument, où les clés représentent les valeurs d'origine dans col1 et les valeurs représentent les valeurs remappées souhaitées. En définissant le paramètre inplace sur True, la trame de données d'origine est modifiée directement, évitant ainsi le besoin de réaffectation.

Alternativement, si vous préférez appliquer la transformation spécifiquement à la série col1, vous pouvez utiliser la syntaxe suivante :

df["col1"].replace(di, inplace=True)
Copier après la connexion

Cette approche garantit que les valeurs NaN ne restent pas affectées, car NaN n'est pas une clé dans le dictionnaire de mappage.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal