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
Libérer: 2024-10-29 20:35:02
original
560 Les gens l'ont consulté

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

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

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

Sortie :

      A   B
0  7001   1
1  8001   2
2  9001   3
Copier après la connexion

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

Sortie :

       A   B
0   7001   1
1   8001   2
2   9001   3
3  10000 NaN
Copier après la connexion

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