构建datetime64和pandas时间序列的有效方法?

时间:2015-08-21 19:26:07

标签: python numpy pandas

pandas中的时间序列索引使用numpy datetime64类型。

有没有有效的方法来构建datetime64个对象?

我在文档中看到的唯一方法是来自string或来自python datetime对象。

如果我有大量的时间戳(数百万),以纪元时间(以1970-01-01为单位的秒数)或纳秒时间(1970-01-01的ns数)表示,有没有快速的方法将整数转换为numpy datetime64

内部numpy.datetime64也以整数表示。

我不想将纪元时间转换为字符串或python datetime对象,然后转换为numpy.datetime64,因为它对于大量数据来说效率太低。

2 个答案:

答案 0 :(得分:4)

pd.to_datetime将转换链接中记录的纪元时间戳:

dt = pd.to_datetime([1349720105, 1349806505, 1349892905,
         1349979305, 1350065705], unit='s')

print(dt)
DatetimeIndex(['2012-10-08 18:15:05', '2012-10-09 18:15:05',
           '2012-10-10 18:15:05', '2012-10-11 18:15:05',
           '2012-10-12 18:15:05'],
          dtype='datetime64[ns]', freq=None, tz=None)

答案 1 :(得分:0)

是的,有一个。但是我无法衡量表现。根据{{​​3}}

import numpy as np
a = np.datetime64('1970-01-01') + np.timedelta64(1, 's')

a = np.datetime64('1970-01-01') + np.timedelta64(100, 'ns')