2015-08-07 16 views
8

W moim dataframe, czas seprated na 3 kolumnach year, month, day, jak to enter image description herePython & Pandy: Kombajny kolumn w terminie

Jak mogę przekonwertować je na date, więc mogę zrobić razem analiza seris?

mogę to zrobić:

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

który wyprowadza

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 

Ale co za tym idzie?

UPDATE: To właśnie kończy się z:

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'] 

Odpowiedz

8

Oto jak konwertować wartości do czasu:

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

Daje mi 'NameError: Nazwa 'x' nie jest defined' , jaki jest problem? – cqcn1991

+0

Brakuje twojej zmiennej wyrażenia lambda używanej z ramki danych. nadal czuję, że to jest wymuszone, ale daj mi znać, jeśli to działa. – FirebladeDan

+0

Myślę, że może powinniśmy przekonwertować na 'datetime', a nie' time'? – cqcn1991

Powiązane problemy