gpt4 book ai didi

python - 将时间序列的时间精度降低到毫秒

转载 作者:行者123 更新时间:2023-11-30 23:37:40 25 4
gpt4 key购买 nike

在解析数据文件时,我有这样的时间:

1.296999421

当前在 pandas 中显示如下:

<Timestamp: 2011-04-16 00:00:01.296999>

数据类型为“datetime64[ns]”但我知道原来的测量只有毫秒精度。

是否可以生成仅使用毫秒精度的 pandas 时间序列?我的目标之一是根据毫秒计数器精确连接不同的时间序列。

所以我只想拥有

<Timestamp: 2011-04-16 00:00:01.297>

这样我就可以在其他时间序列中精确匹配这个时间戳。

换句话说,是否存在“datetime[ms]”以及如何将非连续时间戳转换为它?

最佳答案

HYRY的解决方案是对的,但是pandas不知道如何处理

使用最新的pandas 0.11-dev,timedeltas现在得到了全面支持

http://pandas.pydata.org/pandas-docs/dev/timeseries.html#time-deltas

In [25]: a = np.random.rand(8)*10

In [26]: a.sort()

In [27]: a
Out[27]:
array([ 0.72062151, 1.02039858, 2.07877837, 3.94256869, 5.5139672 ,
6.80194715, 6.83050498, 8.63027672])

# trick is to pass a nanosecond value directly
# pandas keeps all values internally as timedelta64[ns]
In [5]: pd.Series((np.round(a*1000)/1000)*1e9,dtype='timedelta64[ns]')
Out[5]:
0 00:00:00.721000
1 00:00:01.020000
2 00:00:02.079000
3 00:00:03.943000
4 00:00:05.514000
5 00:00:06.802000
6 00:00:06.831000
7 00:00:08.630000
dtype: timedelta64[ns]

如果您需要它作为时间戳

In [8]: pd.Series((np.round(a*1000)/1000)*1e9,dtype='timedelta64[ns]') + pd.Timestamp('20110406')
Out[8]:
0 2011-04-06 00:00:00.721000
1 2011-04-06 00:00:01.020000
2 2011-04-06 00:00:02.079000
3 2011-04-06 00:00:03.943000
4 2011-04-06 00:00:05.514000
5 2011-04-06 00:00:06.802000
6 2011-04-06 00:00:06.831000
7 2011-04-06 00:00:08.630000
dtype: datetime64[ns]

关于python - 将时间序列的时间精度降低到毫秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15287496/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com