2017-07-28 48 views
1

我在纳秒格式的日期时间在大熊猫数据帧(满):装饰纳秒在Python纳秒的100的(大熊猫)

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 

我要修剪的最后两位数字,以便我可以保留日期时间以便在.NET日期时间对象中使用:

此刻我试过这个:

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

但这只是一个额外的零微秒,我需要百分之一纳秒的精度。

任何想法?

+0

所期望的输出? – jezrael

+0

不确定是否可能。您可以在日期时间内使用'ns'精度或'useconds'精度。 dt.strftime('%Y-%m-%d%H:%M:%S.%f0')'返回字符串,而不是日期时间。 – jezrael

回答

2

如果要修剪us使用floor和删除最后一个2零,并转换为strings使用astypestr[:-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

多数民众赞成真棒谢谢 – azuric