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)
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)
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!