2017-07-28 3 views
1

私はパンダのデータフレーム(フル)でナノ秒の形式の日時があります取得するトリムナノ秒(パンダ)

2017-06-30 08:53:58.940891100 

2017-06-30 08:53:58.940891200 

を:

2017-06-30 08:53:58.9408911 

2017-06-30 08:53:58.9408912 

私はトリミングします最後の2桁の数字のうち、後で.NETタイムゾーンオブジェクトで使用するためにダンプを使用することができます。

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

しかし、これはマイクロ秒に制限され、追加のゼロがあり、100ナノ秒の精度が必要です。

アイデア?

+0

? – jezrael

+0

可能なかどうかわかりません。 datetimesの精度は 'ns'、精度は' useconds'です。 dt.strftime( '%Y-%m-%d%H:%M:%S.%f0') 'datetimeではなく、文字列を返します。 – jezrael

答えて

2

us使用floorにトリミングして削除するために、最後の2ゼロとstr[:-2]strings使用astypeに変換したい場合は、次の出力希望される何

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

すごくおかげで – azuric