Heim  >  Artikel  >  Backend-Entwicklung  >  Was verursacht den Fehler „ValueError: Kann nicht von einer doppelten Achse neu indiziert werden“ in der Pandas-Bibliothek von Python und wie kann er behoben werden?

Was verursacht den Fehler „ValueError: Kann nicht von einer doppelten Achse neu indiziert werden“ in der Pandas-Bibliothek von Python und wie kann er behoben werden?

DDD
DDDOriginal
2024-10-23 17:56:02441Durchsuche

What Causes the

Verstehen von „ValueError: Kann nicht von einer doppelten Achse neu indiziert werden“

Der Fehler „ValueError: Kann von einer doppelten Achse nicht neu indiziert werden“ in Pythons Pandas Bibliothek bezeichnet einen Indizierungsvorgang, der auf doppelte Werte auf einer Achse stößt. Um dieses Problem anzugehen, verstehen Sie zunächst das Konzept der Achse in Pandas:

  • Zeilen: Dargestellt durch die „0“-Achse.
  • Spalten: Dargestellt durch die „1“-Achse.

Fehlerursache

Dieser Fehler tritt auf, wenn Sie versuchen, einen Wert festzulegen oder eine neue Zeile zu erstellen /column (Achse) mit einem Namen, der bereits im aktuellen Index/in den aktuellen Spalten des DataFrame vorhanden ist. Pandas interpretiert dies als einen Neuindizierungsvorgang, der kompatible Duplikate entlang der Zielachse erfordert. Wenn jedoch solche Duplikate vorhanden sind, schlägt der Vorgang fehl und löst den Fehler „ValueError: Neuindizierung von einer doppelten Achse kann nicht möglich“ aus.

Beispiel

Betrachten Sie den folgenden DataFrame:

<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>

Diese Aktion führt zum Fehler „ValueError: Neuindizierung von einer doppelten Achse nicht möglich“, da im DataFrame bereits eine Zeile mit dem Index „Alice“ vorhanden ist.

Auflösung der Fehler

Um diesen Fehler zu beheben, stellen Sie sicher, dass die Namen, die für die Indizierung/Zuweisung neuer Zeilen/Spalten verwendet werden, nicht mit vorhandenen Namen in Konflikt stehen. Sie können mit den Methoden df.index.is_unique bzw. df.columns.is_unique nach doppelten Indizes oder Spaltennamen suchen.

Alternativer Ansatz

Bei Bedarf Um einen vorhandenen Wert für einen Index zu überschreiben, der Duplikate enthält, können Sie die at-Methode verwenden:

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

Dieser Ansatz aktualisiert den Wert der Spalte „Alter“ für die erste Zeile mit dem Index „Alice“, ohne ihn zu erhöhen ein Fehler.

Das obige ist der detaillierte Inhalt vonWas verursacht den Fehler „ValueError: Kann nicht von einer doppelten Achse neu indiziert werden“ in der Pandas-Bibliothek von Python und wie kann er behoben werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn