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!