python - 更改时间列精度
问题描述
这里我们有一个数据框Pandas
。我正在努力调整时间精度。
Title 1 Title 2 Title 3 Title 4 ... midprice t0 t1 tEvent
2015-07-15 09:30:00+00:00 26730 26844 26851 26870 ... 267.020 09:29:59.500 09:30:00.000 20150715 09:30:00.002
2015-07-15 09:30:00.499500032+00:00 26726 26830 26840 26844 ... 267.000 09:30:00.000 09:30:00.500 20150715 09:30:00.599
2015-07-15 09:30:01+00:00 26730 26844 26851 26870 ... 267.020 09:30:00.500 09:30:01.000 20150715 09:30:01.012
2015-07-15 09:30:01.499500032+00:00 26694 26768 26780 26800 ... 266.770 09:30:01.000 09:30:01.500 20150715 09:30:01.557
2015-07-15 09:30:02+00:00 26695 26750 26768 26780 ... 266.775 09:30:01.500 09:30:02.000 20150715 09:30:02.086
2015-07-15 09:30:02.499500032+00:00 26694 26750 26768 26780 ... 266.770 09:30:02.000 09:30:02.500 20150715 09:30:02.584
2015-07-15 09:30:03+00:00 26694 26745 26750 26751 ... 266.770 09:30:02.500 09:30:03.000 20150715 09:30:03.106
2015-07-15 09:30:03.499500032+00:00 26693 26745 26750 26751 ... 266.765 09:30:03.000 09:30:03.500 20150715 09:30:03.638
2015-07-15 09:30:04+00:00 26693 26745 26750 26751 ... 266.765 09:30:03.500 09:30:04.000 20150715 09:30:04.419
2015-07-15 09:30:04.499500032+00:00 26693 26740 26745 26750 ... 266.765 09:30:04.000 09:30:04.500 20150715 09:30:04.636
2015-07-15 09:30:05+00:00 26693 26745 26750 26751 ... 266.765 09:30:04.500 09:30:05.000 20150715 09:30:06.817
2015-07-15 09:30:05.499500032+00:00 26693 26745 26750 26751 ... 266.765 09:30:05.000 09:30:05.500 20150715 09:30:06.817
2015-07-15 09:30:06+00:00 26693 26745 26750 26751 ... 266.765 09:30:05.500 09:30:06.000 20150715 09:30:06.817
我感兴趣的输出很简单
Title 1 Title 2 Title 3 Title 4 ... midprice t0 t1 tEvent
2015-07-15 09:30:00+00:00 26730 26844 26851 26870 ... 267.020 09:29:59.500 09:30:00.000 20150715 09:30:00.002
2015-07-15 09:30:00.5:00 26726 26830 26840 26844 ... 267.000 09:30:00.000 09:30:00.500 20150715 09:30:00.599
2015-07-15 09:30:01+00:00 26730 26844 26851 26870 ... 267.020 09:30:00.500 09:30:01.000 20150715 09:30:01.012
2015-07-15 09:30:01.5:00 26694 26768 26780 26800 ... 266.770 09:30:01.000 09:30:01.500 20150715 09:30:01.557
2015-07-15 09:30:02+00:00 26695 26750 26768 26780 ... 266.775 09:30:01.500 09:30:02.000 20150715 09:30:02.086
2015-07-15 09:30:02.5:00 26694 26750 26768 26780 ... 266.770 09:30:02.000 09:30:02.500 20150715 09:30:02.584
2015-07-15 09:30:03+00:00 26694 26745 26750 26751 ... 266.770 09:30:02.500 09:30:03.000 20150715 09:30:03.106
2015-07-15 09:30:03.5:00 26693 26745 26750 26751 ... 266.765 09:30:03.000 09:30:03.500 20150715 09:30:03.638
2015-07-15 09:30:04+00:00 26693 26745 26750 26751 ... 266.765 09:30:03.500 09:30:04.000 20150715 09:30:04.419
2015-07-15 09:30:04.5:00 26693 26740 26745 26750 ... 266.765 09:30:04.000 09:30:04.500 20150715 09:30:04.636
2015-07-15 09:30:05+00:00 26693 26745 26750 26751 ... 266.765 09:30:04.500 09:30:05.000 20150715 09:30:06.817
2015-07-15 09:30:05.5:00 26693 26745 26750 26751 ... 266.765 09:30:05.000 09:30:05.500 20150715 09:30:06.817
2015-07-15 09:30:06+00:00 26693 26745 26750 26751 ... 266.765 09:30:05.500 09:30:06.000 20150715 09:30:06.817
如何更改时间列精度?
解决方案
您可以四舍五入,然后修剪并转换回日期时间
df.index = df.index.round('ms').strftime('%Y-%m-%d %H:%M:%S.%f').str[:22]
df.index = pd.to_datetime(df.index)
Title 1 Title 2 Title 3 Title 4
2015-07-15 09:30:00.00 26730 26844 26851 26870
2015-07-15 09:30:00.50 26726 26830 26840 26844
2015-07-15 09:30:01.00 26730 26844 26851 26870
2015-07-15 09:30:01.50 26694 26768 26780 26800
推荐阅读
- javascript - 如何在 randgen 中使用 if 语句
- sql - 将在线 JSON 文件集转换为关系数据库(SQL Server、MySQL、SQLITE)
- mysql - Bigquery:有没有办法将时间戳向上或向下舍入到最近的分钟?
- node.js - 将 Node.js 服务器与 Webpack 捆绑时找不到 index.html
- machine-learning - azure ML 如何为训练模型时未使用的值提供输出?
- ios - 使用 swift 搜索其余 api 响应结果
- javascript - 我在 PHP 中处理这些变量的方式有什么问题?
- wordpress - Wordpress 自定义查询 - 比较日期和制作事件列表
- python - 如何从插值函数中获得特殊导数
- vue.js - VueJS文件上传不接受文件