如何将大熊猫的字符串时间转换为纳秒时间

时间:2019-02-08 21:20:51

标签: python pandas

我有一个类似09:30:00.031883382的字符串变量。我想将其转换为时间格式。我尝试过

pd.to_datetime(pd.time, unit ='ns').dt.time

pd.to_datetime(pd.time, format ="%H:%M:%S.%f").dt.time

他们两个都将时间舍入为09:30:00.031883。任何人都可以教我如何将此字符串转换为时间格式,但请确保时间精确到纳秒级(秒后保留所有9位数字)。

1 个答案:

答案 0 :(得分:0)

当您为pd.to_datetime()提供没有日期的时间字符串时,如'09:30:00.031883382'一样,熊猫默认情况下会将当前日期插入到生成的Timestamp对象中。 (Timestamp对象总是同时具有日期和时间。)由于某种原因,此默认行为似乎丢弃了纳秒,而显式提供日期(例如当前日期)则在结果{{1}中保留了纳秒。 }:

Timestamp

一种解决方案是指定一个有效的日期以及纳秒级的时间。

另一种解决方案是使用In [1]: d1 = pd.to_datetime('09:30:00.031883382') In [2]: d1 Out[2]: Timestamp('2019-02-09 09:30:00.031883') In [3]: d1.nanosecond Out[3]: 0 In [4]: d2 = pd.to_datetime('2019-02-09 09:30:00.031883382') In [5]: d2 Out[5]: Timestamp('2019-02-09 09:30:00.031883382') In [6]: d2.nanosecond Out[6]: 382 代替pd.to_timedelta

pd.to_datetime