2016-07-21 7 views
0

Ein Python Datenrahmen ‚dff‘ importiert Daten von SAS enthält ein Datumsfeld ist mit dessen Typ wie unten durch Python zeigt:Konvertieren von Datenrahmen Objekt in die seit Python

dff.effvdate.head() 
Out[47]: 
0 b'09JUL2013' 
1 b'17OCT2013' 
2 b'03MAR2014' 
3 b'08MAY2014' 
4 b'10MAR2015' 
Name: effvdate, dtype: object 

ich dieses Datum Datetype zu konvertieren versuche wie folgt:

dff['REPORT_MONTH'] =[dt.datetime.strptime(d,"%d%b%Y").date() for d in dff['effvdate']] 

diesen Fehler zeigt

TypeError: strptime() argument 1 must be str, not bytes 

wie ich zu python bin hier, Notwendigkeit Hilfe dabei.

Antwort

0

Der Fehler TypeError: strptime() argument 1 must be str, not bytes gibt Ihnen die Informationen, die Sie wissen müssen! d ist in Bytes, keine Zeichenfolge. Sie sollten d auf String streamen.

dff['REPORT_MONTH'] =[dt.datetime.strptime(d.decode('UTF-8'),"%d%b%Y").date() for d in dff['effvdate']] 

sollte funktionieren.

siehe What does the 'b' character do in front of a string literal?

+0

Vielen Dank. Es klappt. Aber wenn ich dieses Datum in meinem Dataframe speichere, wird es immer noch als "Objekt" angezeigt. Was ist eigentlich "Objekt"? – FarrukhJ

+0

https://docs.python.org/2/tutorial/classes.html – honi

+0

ein Objekt ist eine Sache, die Attribute hat. Das ist im Grunde alles in Python. – honi

Verwandte Themen