2015-08-07 7 views
8

In meinem dataframe, die Zeit, in 3 Spalten seprated ist year, month, day, wie diese enter image description herePython & Pandas: Kombinieren Sie Spalten in ein Datum

Wie kann ich sie in date konvertieren, so kann ich Zeit tun Seris-Analyse?

Ich kann dies tun:

df.apply(lambda x:'%s %s %s' % (x['year'],x['month'], x['day']),axis=1) 

die Ausgänge

1095  1954 1 1 
1096  1954 1 2 
1097  1954 1 3 
1098  1954 1 4 
1099  1954 1 5 
1100  1954 1 6 
1101  1954 1 7 
1102  1954 1 8 
1103  1954 1 9 
1104  1954 1 10 
1105  1954 1 11 
1106  1954 1 12 
1107  1954 1 13 

Aber was folgt daraus?

UPDATE: Dies ist, was ich am Ende mit:

from datetime import datetime 
df['date']= df.apply(lambda x:datetime.strptime("{0} {1} {2}".format(x['year'],x['month'], x['day']), "%Y %m %d"),axis=1) 
df.index= df['date'] 

Antwort

8

Hier ist, wie Wert zu Zeit konvertieren:

import datetime 


df.apply(lambda x:datetime.strptime("{0} {1} {2} 00:00:00".format(x['year'],x['month'], x['day']), "%Y %m %d %H:%M:%S"),axis=1) 
+0

Es gibt mir 'Nameerror: Name 'x' ist nicht defined' , was ist das Problem? – cqcn1991

+0

Es fehlte Ihre Lambda-Ausdrucksvariable, die vom Datenrahmen verwendet wurde. Ich habe immer noch das Gefühl, dass dies gezwungen ist, aber lass es mich wissen, wenn es funktioniert. – FirebladeDan

+0

Ich denke, vielleicht sollten wir in "Datetime", nicht "Time" konvertieren? – cqcn1991

Verwandte Themen