2017-08-02 2 views
2

Ich versuche, eine Datum-Uhrzeit im Mikrosekundenformat zu lesen.Python Pandas lesen einen Zeitstempel

1500909283.955000 

Die erwartete Ausgabe wie

July 24, 2017 3:14:43.955 PM 

sein, aber wenn ich Pandas verwenden to_datetime Funktion Ich habe

1970-01-01 00:00:01.500909283 

ich alle möglichen Format ohne Erfolg versucht.

Irgendwelche Hinweise

Antwort

3

Sie benötigen unit='s' param für to_datetime:

In[4]: 
pd.to_datetime(1500909283.955000, unit='s') 

Out[4]: Timestamp('2017-07-24 15:14:43.955000') 

der Zeitstempel Sekunden seit der Epoche

Der Standardwert unit ist ns:

In[5]: 
pd.to_datetime(1500909283.955000, unit='ns') 

Out[5]: Timestamp('1970-01-01 00:00:01.500909283') 

die ist was du

beobachtet
+0

Danke für Ihr antworten – Sharek

2

Need to_datetime mit dem Parameter unit, sind Daten in seconds, nicht in milisecond s:

df = pd.DataFrame({'col':['1500909283.955000','1500909283.955000']}) 
df['col'] = pd.to_datetime(df['col'], unit='s') 
print (df) 
         col 
0 2017-07-24 15:14:43.955 
1 2017-07-24 15:14:43.955 

Für milliseconds:

df['col'] = pd.to_datetime(df['col'], unit='ms') 
print (df) 
         col 
0 1970-01-18 08:55:09.283955 
1 1970-01-18 08:55:09.283955 

ein anderes Format verwenden Series.dt.strftime Wenn benötigen:

df['col1'] = df['col'].dt.strftime('%b %d, %Y %I:%M:%S.%f %p') 
print (df) 
         col        col1 
0 2017-07-24 15:14:43.955 Jul 24, 2017 03:14:43.955000 PM 
1 2017-07-24 15:14:43.955 Jul 24, 2017 03:14:43.955000 PM 
+2

Mikrosekunden ist '' us'' nicht ''ms'','' ms'' ist Millisekunden – EdChum

+0

Danke für Ihre Antwort – Sharek

+0

@EdChum - Danke :) – jezrael

Verwandte Themen