2017-07-28 3 views
1

ich Datetime in Nanosekunde-Format in einem Pandas Datenrahmen haben (voll):trim Nanosekunden bis 100 von einer Nanosekunde in Python (Pandas)

2017-06-30 08:53:58.940891100 

2017-06-30 08:53:58.940891200 

zu erhalten:

2017-06-30 08:53:58.9408911 

2017-06-30 08:53:58.9408912 

Ich möchte trimmen die letzten zwei Ziffern, so dass ich später die Datetime in Ticks zur Verwendung in einem .NET Datetime-Objekt halten kann:

im Moment habe ich das versucht:

full['datetime'].dt.strftime('%Y-%m-%d %H:%M:%S.%f0') 

aber dies beschränkt sich nur auf Mikrosekunden mit einer zusätzlichen Null und ich brauche hundertstel Nanosekunden Genauigkeit.

Irgendwelche Ideen?

+0

Was Ausgang gewünscht wird? – jezrael

+0

Nicht sicher, wenn möglich. Sie können 'ns' Genauigkeit oder' useconds' Genauigkeit in den Datumsangaben angeben. auch 'full ['datetime']. dt.strftime ('% Y-% m-% d% H:% M:% S.% f0')' gibt Strings zurück, keine Datetimes. – jezrael

Antwort

2

Wenn trimmen wollen us Verwendung floor und Entfernen letzte 2 Null und konvertieren zu strings Verwendung astype mit str[:-2]:

full['datetime2'] = full['datetime'].dt.floor('U') 
full['datetime3'] = full['datetime'].astype(str).str[:-2] 
print (full) 
         datetime     datetime2 \ 
0 2017-06-30 08:53:58.940891100 2017-06-30 08:53:58.940891 
1 2017-06-30 08:53:58.940891200 2017-06-30 08:53:58.940891 

        datetime3 
0 2017-06-30 08:53:58.9408911 
1 2017-06-30 08:53:58.9408912 

print (type(full.loc[0, 'datetime2'])) 
<class 'pandas._libs.tslib.Timestamp'> 

print (type(full.loc[0, 'datetime3'])) 
<class 'str'> 
+0

das ist super danke – azuric

Verwandte Themen