Pandas

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Lienz20013
User
Beiträge: 88
Registriert: Freitag 26. September 2014, 14:42

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?
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.
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

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
Antworten