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

user308827
quelle

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

EdChum
quelle
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.

ch33hau
quelle
9

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

Alex
quelle