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