Pandas lesen Tabelle ohne Überschriften ein


238

Wie kann ich eine CSV-Datei (ohne Überschriften) mit Pandas einlesen und wenn ich nur eine Teilmenge der Spalten (z. B. 4. und 7. von insgesamt 20 Spalten) möchte? Ich kann es anscheinend nicht könnenusecols

Antworten:


346

Um eine CSV zu lesen, die keinen Header hat und nur für bestimmte Spalten müssen Sie Parameter header=Noneund usecols=[3,6]für die 4. und 7. Spalte übergeben:

df = pd.read_csv(file_path, header=None, usecols=[3,6])

Siehe die Dokumente


65

Frühere Antworten waren gut und richtig, aber meiner Meinung nach wird ein zusätzlicher namesParameter es perfekt machen, und es sollte der empfohlene Weg sein, besonders wenn die CSV keine hat headers.

Lösung

Verwendung usecolsund namesParameter

df = pd.read_csv(file_path, usecols=[3,6], names=['colA', 'colB'])

Zusätzliche Lektüre

oder verwenden Sie, header=Noneum den Leuten explizit mitzuteilen, dass der csvkeine Überschriften hat (trotzdem sind beide Zeilen identisch )

df = pd.read_csv(file_path, usecols=[3,6], names=['colA', 'colB'], header=None)

Damit Sie Ihre Daten von abrufen können

# with `names` parameter
df['colA']
df['colB'] 

anstatt

# without `names` parameter
df[0]
df[1]

Erklären

Basierend auf read_csv verhält es sich , wenn nameses explizit übergeben headerwird, wie Nonestatt 0, sodass man überspringen kann, header=Nonewenn es namesexistiert.


9

Stellen Sie sicher, dass Sie pass angeben header=Noneund usecols=[3,6]für die 4. und 7. Spalte hinzufügen .

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.