作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 pandas.DatetimeIndex
,例如:
pd.date_range('2012-1-1 02:03:04.000',periods=3,freq='1ms')
>>> [2012-01-01 02:03:04, ..., 2012-01-01 02:03:04.002000]
Timestamp
s)四舍五入到最接近的秒。我怎么做?预期结果类似于:
[2012-01-01 02:03:04.000000, ..., 2012-01-01 02:03:04.000000]
datetime64[ns]
来实现此目的到秒而不改变
dtype
[ns]
?
np.array(['2012-01-02 00:00:00.001'],dtype='datetime64[ns]')
最佳答案
更新:如果您对 DatetimeIndex/datetime64 列执行此操作,更好的方法是使用 np.round
直接而不是通过应用/映射:
np.round(dtindex_or_datetime_col.astype(np.int64), -9).astype('datetime64[ns]')
from pandas.lib import Timestamp
t1 = Timestamp('2012-1-1 00:00:00')
t2 = Timestamp('2012-1-1 00:00:00.000333')
In [4]: t1
Out[4]: <Timestamp: 2012-01-01 00:00:00>
In [5]: t2
Out[5]: <Timestamp: 2012-01-01 00:00:00.000333>
In [6]: t2.microsecond
Out[6]: 333
In [7]: t1.value
Out[7]: 1325376000000000000L
In [8]: t2.value
Out[8]: 1325376000000333000L
# Alternatively: t2.value - t2.value % 1000000000
In [9]: long(round(t2.value, -9)) # round milli-, micro- and nano-seconds
Out[9]: 1325376000000000000L
In [10]: Timestamp(long(round(t2.value, -9)))
Out[10]: <Timestamp: 2012-01-01 00:00:00>
def to_the_second(ts):
return Timestamp(long(round(ts.value, -9)))
dtindex.map(to_the_second)
关于date - 如何舍入 Pandas `DatetimeIndex` ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13785932/
我是一名优秀的程序员,十分优秀!