'Unnamed: 0' in Pandas reparieren — vollständige Anleitung
Die 'Unnamed: 0'-Spalte ist einer der meist-gegoogleten Pandas-Fehler. Sie erscheint, wenn eine CSV mit df.to_csv() ohne index=False gespeichert wurde, wodurch der DataFrame-Index als unbenannte erste Spalte geschrieben wird. Hier sind vier Wege, das zu beheben.
Methode 1: Vermeiden (am besten)
Beim Speichern: df.to_csv('data.csv', index=False). Das lässt die Index-Spalte komplett weg. Trägt der Index sinnvolle Daten (z. B. ein Datums-Index), zuerst benennen: df.index.name = 'date' — dann schreibt Pandas einen ordentlichen Header.
Methode 2: Beim Lesen beheben
Beim Laden einer CSV mit bereits unbenanntem Index: df = pd.read_csv('data.csv', index_col=0). Das sagt Pandas, Spalte 0 als Index statt als Daten zu behandeln. Der Name 'Unnamed: 0' verschwindet, weil er zum Index wird, nicht zur Datenspalte.
Methode 3: Spalte nach dem Laden entfernen
Wenn Sie den DataFrame schon geladen haben: df = df.drop(columns=['Unnamed: 0']). Robuster: df = df.loc[:, ~df.columns.str.contains('^Unnamed')]. Das entfernt ALLE unbenannten Spalten, egal wie viele.
Methode 4: Die CSV-Datei selbst reparieren
Müssen Sie die CSV einmal reparieren und weitergeben (z. B. in eine Datenbank hochladen, an einen Kollegen schicken): CSV First Aid. Datei ablegen, der 'Pandas-unnamed-index'-Fix erkennt und entfernt die Spalte automatisch, fertige CSV herunterladen.
Das ist der beste Ansatz, wenn: Sie den Code, der die Datei liest, nicht kontrollieren, Sie die Datei mit Nicht-Python-Nutzern teilen, oder Sie das dauerhaft beheben wollen statt überall index_col=0 zu schreiben.
Warum passiert das überhaupt?
to_csv() von Pandas inkludiert den Index standardmäßig, weil DataFrames immer einen Index haben. Erstellen Sie einen DataFrame aus einer Liste oder einem Dict ohne Index-Angabe, generiert Pandas automatisch einen RangeIndex (0, 1, 2, ...). Beim Export wird das als erste Spalte ohne Namen geschrieben.
Beim erneuten Lesen kann Pandas das nicht von einer echten Datenspalte unterscheiden, lädt es als Daten und vergibt den Namen 'Unnamed: 0' (weil der Header-Zelle leer ist).
Kein Python installiert? CSV First Aid entfernt die Unnamed: 0-Spalte im Browser.
CSV jetzt reparieren →Ähnliche Tools
Spalte 'Unnamed: 0' aus einer CSV entfernen
Erste Spalte ohne Namen, enthält 0, 1, 2, 3…? Jemand hat to_csv() ohne index=False ausgeführt. Wir erkennen den durchgesickerten Index und entfernen ihn — echte Daten rücken wieder nach Spalte A.
CSV-Header reparieren
Zwei Spalten beide 'Name' und Ihr SQL-Importer crasht, oder Pandas benennt sie still in Name und Name.1 um. Wir benennen die Duplikate in Name, Name_1, Name_2 um — Imports funktionieren wieder.
Leere Zeilen aus einer CSV entfernen
Leere Zeilen verstecken sich zwischen Ihren Daten und ruinieren jede Zeilenzahl, jeden Import, jedes SUM(). Wir prüfen jede Zeile und löschen die, in denen jede Zelle leer ist. Ein einziger Wert reicht, damit die Zeile erhalten bleibt.