Maison  >  Article  >  développement back-end  >  Quelles sont les causes de l'erreur Pandas « ValueError : impossible de réindexer à partir d'un axe en double » ?

Quelles sont les causes de l'erreur Pandas « ValueError : impossible de réindexer à partir d'un axe en double » ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-23 16:26:02440parcourir

What Causes the Pandas Error

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

Dans la bibliothèque Pandas de Python, ce message d'erreur indique qu'une opération ne peut pas être effectuée car la structure de données contient des valeurs en double dans l'axe référencé.

Cause de l'erreur

Plus précisément, l'erreur se produit lors de la tentative de réindexation d'un DataFrame ou d'une série en attribuant une nouvelle ligne ou colonne utilisant un index qui existe déjà. La réindexation implique de modifier les étiquettes d'index, et si des étiquettes en double sont présentes, il devient impossible de mapper de manière unique les opérations aux données correspondantes.

Exemple de scénario

Pour illustrer ceci erreur, considérez un Pandas DataFrame avec des noms de colonnes en double. Voici un extrait de Python qui montre comment cela peut se produire :

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

df = pd.DataFrame({
    "ID": [1, 2, 3],
    "Name": ["Alice", "Bob", "Charlie"],
    "Score": [90, 80, 70],
    "Age": [25, 26, 27]
})

df["Score"] = df["Score"] * 2
df["Age"] = df["Age"] + 1

# Attempt to create a duplicate column
df["Score"] = df["Score"] * 1.1</code>

Lorsque vous exécutez cet extrait, vous rencontrerez l'erreur suivante :

ValueError: cannot reindex from a duplicate axis

C'est parce que le DataFrame a déjà une colonne nommée « Score » et vous essayez de lui attribuer une nouvelle valeur en utilisant le même nom. La colonne en double empêche Pandas de réindexer la colonne avec succès.

Solution

Pour résoudre cette erreur, vous devez vous assurer que les valeurs d'index utilisées pour la réindexation sont uniques. Dans le cas d'une affectation à des lignes ou des colonnes existantes, cela signifie éviter les étiquettes en double. Si les valeurs en double ont été introduites involontairement, vous pouvez vérifier l'index à l'aide de la méthode .duplicate() et supprimer les doublons en conséquence.

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