是否可以通过int将DatetimeIndex转换为datetime64[s],而不除以1e9?

2024-10-03 09:20:16 发布

您现在位置:Python中文网/ 问答频道 /正文

是否可以通过int array将DatetimeIndex转换为datetime64[s]数组,而不必除以1e9?

下面的代码提供了一个int numpy数组,但是我必须除以1e9才能从纳秒到秒。你知道吗

不需要除以1e9就可以完成这个过程(DatetimeIndex、int numpy数组,最后是datetime64[s]numpy数组)吗?你知道吗

import pandas as pd
import numpy as np
start = pd.Timestamp('2015-07-01')
end = pd.Timestamp('2015-07-05')
t = np.linspace(start.value, end.value, 5)
datetimeIndex = pd.to_datetime(t)
'''type: DatetimeIndex'''
datetimeIndex
Out[2]: 
DatetimeIndex(['2015-07-01', '2015-07-02', '2015-07-03', '2015-07-04',
               '2015-07-05'],
              dtype='datetime64[ns]', freq=None)
datetimeIndexAs10e9int = datetimeIndex.values.astype(np.int64)
'''datetimeIndexAs10e9int - like [1435708800000000000]'''
datetimeIndexAs10e9int
Out[3]: 
array([1435708800000000000, 1435795200000000000, 1435881600000000000,
       1435968000000000000, 1436054400000000000])
datetime  = (1/1e9*datetimeIndexAs10e9int).astype(np.float).astype('datetime64[s]')
datetime
Out[4]: 
array(['2015-07-01T00:00:00', '2015-07-02T00:00:00',
       '2015-07-03T00:00:00', '2015-07-04T00:00:00',
       '2015-07-05T00:00:00'], dtype='datetime64[s]')

Tags: importnumpydatetimeasnp数组outarray
1条回答
网友
1楼 · 发布于 2024-10-03 09:20:16

我想你可以通过修改你的代码来做到。改用astype('datetime64[s]')。你知道吗

datetimeIndexAs10e9int = datetimeIndex.values.astype('datetime64[s]')

相关问题 更多 >