Seite 1 von 1

Pandas

Verfasst: Dienstag 24. Februar 2015, 12:49
von Lienz20013
Hallo, ich habe folgendes Problem ich besitze csv Datei mit folgende Zeit angaben 'yyyymmdd' in der ersten spalte und in der zweiten Sekunden und in der dritten Messwerte. Die Messung fängt um 0:00:00 Uhr an. Und dann im 10s takt. Diese Möchte ich als panda datframe einlesen und hätte dann gern sowas wie '2014-08-12 0:00:10'.

data =

20140812 0 -47.060
20140812 10 -47.113
20140812 20 -47.165
20140812 30 -47.216
20140812 81 -47.266

Code: Alles auswählen

data = pd.io.parsers.read_csv(data,sep='\s*',
        decimal='.',header=None,dayfirst=False,parse_dates={'DateTime': [0,1]}
        ,names=['YYYYMMDD','sec.','pre.sig'],
        index_col='DateTime')
Soweit bin ich erst mal komm aber nicht weiter kann mir jemand helfen?

Re: Pandas

Verfasst: Dienstag 24. Februar 2015, 13:25
von BlackJack
@Lienz20013: Da müsste man wohl die erste Spalte als Datum parsen, die zweite als ganze Zahlen und sich dann aus diesen beiden Spalten eine erzeugen wo die Sekunden auf's Datum addiert werden.

Re: Pandas

Verfasst: Dienstag 24. Februar 2015, 15:39
von gkuhl
Das folgende sollte funktionieren:

Code: Alles auswählen

def parser(s):
    # s wäre dann z.B.: "20140812 0 -47.060"
    date = ...
    return date 

table = pandas.read_table(filename, index_col=[0], parse_dates=[[0,1,2]], date_parser=parser)
Grüße
Gerrit