Seite 1 von 1

Panda - CSV Datei Spalte lesen +1

Verfasst: Dienstag 2. April 2019, 14:03
von AndreeRo
Hallo

ich finde keine Lösung zu folgendem Problem

ich habe eine Exceldatei mit 2065 Spalten, über den Header finde ich alle Spalten wunderbar - nur mit dem Datum habe ich das Problem, das es die Spalte mit der Bezeichnung 'von' 4x in der Datei gibt. Natürlich mit unterschiedlichen Inhalt.
Ich brauche nur die dritte Spalte mit den Werten 'von' … (Typ Datum)


ds = pd.read_csv("daten\\meinedatei.txt", sep=";", Header=0,encoding="ISO-8859-1")
print (ds.loc[ :, {'von', 'kurz', 'tage' }])

geht super, nur es ist immer die erste Spalte mit dem Wert 'von'

Die Versuche mit :
print (ds.loc[ :, {'von'[3], 'kurz', 'tage' }]) .. usw. bringen nichts

Ich könnte die Spalte davor finden und dann eine Spalte weiterspringen ..
print (ds.loc[ :, {'spaltevorvon'+1, 'kurz', 'tage' }]) .. auch nichts


Wäre froh über eine Lösung/Idee :-)

Re: Panda - CSV Datei Spalte lesen +1

Verfasst: Dienstag 2. April 2019, 14:38
von ThomasL
einfach alle Spalten mit gleichem Namen unbenennen:

Code: Alles auswählen

columns = []
count = 1
for column in ds.columns:
    if column == 'von':
        column = f'von_{count}'
        count += 1
    columns.append(column)
ds.columns = columns

Re: Panda - CSV Datei Spalte lesen +1

Verfasst: Dienstag 2. April 2019, 15:23
von __blackjack__
Alternative mit `itertools.count()`:

Code: Alles auswählen

import itertools

counter = itertools.count(1)
ds.columns = [
    (f'von_{next(counter)}' if column == 'von' else column)
    for column in ds.columns
]

Re: Panda - CSV Datei Spalte lesen +1

Verfasst: Mittwoch 3. April 2019, 10:14
von heyJo
Hallo,
hast du es mal mit

Code: Alles auswählen

ds = pd.read_csv("daten\\meinedatei.txt", sep=";", Header=0,encoding="ISO-8859-1",usecols=[0,1,2])
probiert?

Gib im listenähnlichen Format deine Spaltennummer an. Beginne die Zählung bei "0".

Gruß
Jo