Comment ajouter efficacement une colonne mappée à un DataFrame Pandas ?

DDD
Libérer: 2024-10-29 02:27:29
original
312 Les gens l'ont consulté

How to Efficiently Add a Mapped Column to a Pandas DataFrame?

Ajout d'une colonne mappée à un DataFrame Pandas

Lorsque vous travaillez avec des pandas, ajout d'une nouvelle colonne avec une valeur mappée basée sur une colonne existante peut être une tâche simple. Cependant, certaines approches peuvent entraîner des erreurs ou des difficultés.

Une tentative courante consiste à attribuer directement la valeur mappée à la nouvelle colonne :

<code class="python">df["B"] = equiv(df["A"])</code>
Copier après la connexion

Cependant, cela échouera en tant qu'équiv, représentant un dictionnaire, n'est pas une fonction appelable.

Une autre approche qui peut ne pas donner le résultat souhaité consiste à utiliser map avec une fonction lambda :

<code class="python">df["B"] = df["A"].map(lambda x: equiv[x])</code>
Copier après la connexion

Cette expression générera probablement une KeyError à moins que le les clés du dictionnaire correspondent exactement aux valeurs des colonnes.

La bonne solution

La méthode appropriée pour ajouter une colonne mappée consiste à utiliser la carte directement avec le dictionnaire :

<code class="python">df["B"] = df["A"].map(equiv)</code>
Copier après la connexion

Cette approche créera une nouvelle colonne, B, avec les valeurs mappées du dictionnaire Equiv. Si une clé n'existe pas dans le dictionnaire, la ligne correspondante se verra attribuer NaN.

Exemple

Considérez le DataFrame suivant :

<code class="python">df = pd.DataFrame({"A": [7001, 8001, 9001]})
equiv = {7001: 1, 8001: 2, 9001: 3}</code>
Copier après la connexion

L'application de la cartographie correcte produira le résultat souhaité :

<code class="python">df["B"] = df["A"].map(equiv)

print(df)

      A  B
0  7001  1
1  8001  2
2  9001  3</code>
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal