Maison >développement back-end >Tutoriel Python >Comment mapper les valeurs du dictionnaire à une nouvelle colonne Pandas ?

Comment mapper les valeurs du dictionnaire à une nouvelle colonne Pandas ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-29 20:35:02539parcourir

How to Map Dictionary Values to a New Pandas Column?

Mappage des valeurs du dictionnaire vers une nouvelle colonne Pandas

Lorsque vous traitez des trames de données Pandas, il peut y avoir des cas où il est nécessaire d'ajouter une nouvelle colonne basée sur une valeur mappée à partir d’une colonne existante. Pour y parvenir, une idée fausse courante consiste à utiliser la fonction Equiv comme paramètre dans la nouvelle affectation de colonne. Cependant, cela entraînera une erreur car equiv n'est pas une fonction appelable.

L'approche correcte consiste à utiliser la fonction de carte Pandas. La syntaxe pour ajouter une nouvelle colonne basée sur les valeurs mappées d'un dictionnaire est la suivante :

df["new_column"] = df["existing_column"].map(mapping_function)

La mapping_function est une fonction qui accepte la valeur de la colonne existante et renvoie la valeur mappée souhaitée. Dans ce cas, la fonction de mappage est une fonction lambda qui utilise l'équiv du dictionnaire pour récupérer la valeur mappée correspondante :

mapping_function = lambda x: equiv[x]

En utilisant cette méthode, la trame de données df sera mise à jour avec la nouvelle colonne "B" qui contient les valeurs mappées de la colonne « A » en fonction du dictionnaire fourni :

import pandas as pd
equiv = {7001:1, 8001:2, 9001:3}
df = pd.DataFrame({"A": [7001, 8001, 9001]})
df["B"] = df["A"].map(lambda x: equiv[x])

print(df)

Sortie :

      A   B
0  7001   1
1  8001   2
2  9001   3

Cette méthode gère de manière transparente les scénarios dans lesquels la clé n'est pas présente dans le dictionnaire, comme illustré ci-dessous :

equiv = {7001:1, 8001:2, 9001:3}
df = pd.DataFrame({"A": [7001, 8001, 9001, 10000]})
df["B"] = df["A"].map(lambda x: equiv[x])

print(df)

Sortie :

       A   B
0   7001   1
1   8001   2
2   9001   3
3  10000 NaN

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!

Déclaration:
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