Maison  >  Article  >  développement back-end  >  Comment ajouter efficacement une colonne mappée à un DataFrame Pandas ?

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

DDD
DDDoriginal
2024-10-29 02:27:29208parcourir

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>

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>

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>

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>

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>

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