Maison  >  Article  >  développement back-end  >  Comment résoudre « ValueError : impossible de réindexer à partir d'un axe en double » dans Pandas ?

Comment résoudre « ValueError : impossible de réindexer à partir d'un axe en double » dans Pandas ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-23 19:01:02730parcourir

How to Resolve

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

Dans Pandas, la réindexation fait référence à l'opération de modification des étiquettes de ligne ou de colonne d'un DataFrame. Lorsqu'une opération de réindexation est tentée et qu'un axe en double est rencontré, l'erreur « ValueError : impossible de réindexer à partir d'un axe en double » est générée.

Explication

Cette erreur est généralement se produit lorsque vous attribuez une nouvelle ligne ou colonne à un DataFrame dont l'index (étiquettes de ligne) ou les colonnes (étiquettes de colonne) contiennent des valeurs en double.

Dans le contexte de votre question, vous attribuez une nouvelle ligne nommée « sommes » ' au DataFrame affinity_matrix. Cependant, l'erreur suggère qu'affinity_matrix peut avoir des valeurs en double dans ses colonnes. C'est probablement la cause du problème.

Exemple

Considérez le DataFrame suivant avec des lignes d'étiquettes de chaîne et des colonnes d'étiquettes entières :

import pandas as pd
df = pd.DataFrame([[1, 2, 3], [4, 5, 6], [7, 8, 9]], index=["a", "b", "c"], columns=[1, 2, 2])

Dans ce DataFrame, la colonne 2 apparaît deux fois. Si nous essayons d'attribuer une nouvelle ligne nommée « somme » en additionnant les valeurs de chaque colonne, nous rencontrerons la même erreur :

df.loc['sum'] = df.sum(axis=0)
ValueError: cannot reindex from a duplicate axis

Cette erreur se produit car le DataFrame a déjà une colonne intitulée "2", et tenter de le réindexer créerait une affectation ambiguë.

Résoudre le problème

Pour résoudre ce problème, vous devez vérifier que les index ou les étiquettes de colonnes de votre DataFrame ne contiennent pas de valeurs en double. Si tel est le cas, vous pouvez soit supprimer les valeurs en double, soit les réétiqueter de manière unique.

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