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

Patricia Arquette
Libérer: 2024-10-23 19:01:02
original
662 Les gens l'ont consulté

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])
Copier après la connexion

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)
Copier après la connexion
ValueError: cannot reindex from a duplicate axis
Copier après la connexion

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!

source:php
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!