Maison  >  Article  >  développement back-end  >  Quelles sont les causes de l'erreur « ValueError : impossible de réindexer à partir d'un axe en double » dans la bibliothèque Pandas de Python et comment y remédier ?

Quelles sont les causes de l'erreur « ValueError : impossible de réindexer à partir d'un axe en double » dans la bibliothèque Pandas de Python et comment y remédier ?

DDD
DDDoriginal
2024-10-23 17:56:02441parcourir

What Causes the

Comprendre "ValueError : impossible de réindexer à partir d'un axe en double"

L'erreur "ValueError : impossible de réindexer à partir d'un axe en double" dans les Pandas de Python bibliothèque signifie une opération d'indexation qui rencontre des valeurs en double sur un axe. Pour résoudre ce problème, comprenez d'abord le concept d'axe dans Pandas :

  • Rangées : représentées par l'axe « 0 ».
  • Colonnes : Représenté par l'axe '1'.

Cause de l'erreur

Cette erreur se produit lorsque vous essayez de définir une valeur ou de créer une nouvelle ligne /column (axis) avec un nom qui existe déjà dans l'index/les colonnes actuels du DataFrame. Pandas interprète cela comme une opération de réindexation, qui nécessite des doublons compatibles le long de l'axe ciblé. Cependant, si de tels doublons existent, l'opération échoue, générant l'erreur « ValueError : impossible de réindexer à partir d'un axe en double ».

Exemple

Considérez le DataFrame suivant :

<code class="python">import pandas as pd

data = {
    "Name": ["Alice", "Bob", "Alice"],
    "Age": [22, 25, 28]
}
df = pd.DataFrame(data)

# Attempting to set a row with a duplicate name (Alice)
df.loc["Alice"] = [30, 32]</code>

Cette action conduit à l'erreur "ValueError : impossible de réindexer à partir d'un axe dupliqué" car il existe déjà une ligne avec l'index "Alice" dans le DataFrame.

Résolution l'erreur

Pour résoudre cette erreur, assurez-vous que les noms utilisés pour indexer/attribuer de nouvelles lignes/colonnes ne sont pas en conflit avec les noms existants. Vous pouvez rechercher des index ou des noms de colonnes en double à l'aide respectivement des méthodes df.index.is_unique ou df.columns.is_unique.

Approche alternative

Si vous en avez besoin écraser une valeur existante pour un index qui a des doublons, vous pouvez utiliser la méthode at :

<code class="python">df.at["Alice", "Age"] = 33</code>

Cette approche met à jour la valeur de la colonne "Âge" pour la première ligne avec l'index "Alice" sans augmenter une erreur.

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