【发布时间】:2021-01-10 12:49:49
【问题描述】:
我有一个数据框,其时间戳列的格式为:YYYY-MM-DD HH:MM:SS:sss。示例如下:
0 2019-12-17 21:17:39.424
1 2019-12-17 21:17:41.065
2 2019-12-17 21:18:06.640
3 2019-12-17 21:18:07.229
4 2019-12-17 21:18:07.858
...
1072 2019-12-17 22:54:54.052
1073 2019-12-17 22:54:56.075
1074 2019-12-17 22:55:23.040
1075 2019-12-17 22:55:23.040
1076 2019-12-17 22:55:26.363
Name: time_stamp, Length: 1077, dtype: datetime64[ns]
我从 csv 文件中读取了数千行。我一直试图找到每个连续时间戳之间的时间间隔(timedelta)。由于每个连续对之间的差异不大于几秒,我只想检索该部分(丢弃数据,小时和分钟部分,反正都是 0。
我可以在循环中迭代地执行简单的减法,但我得到的结果是每个计算的字符串。示例如下:
> 0 0 days 00:00:03.988000
1 0 days 00:00:01.641000
2 0 days 00:00:25.575000
3 0 days 00:00:00.589000
4 0 days 00:00:00.629000
...
1072 0 days 00:00:36.084000
1073 0 days 00:00:02.023000
1074 0 days 00:00:26.965000
1075 0 days 00:00:00
1076 0 days 00:00:03.323000
Name: arr_time, Length: 1077, dtype: object
现在,如您所见,数据类型是字符串,它阻止我执行与 timedelta 或 datetime 数据类型相关的各种操作。我无法更改其数据类型。我对 datetime、timestamp 和 timedelta 概念感到很困惑,以至于我无法弄清楚每种情况支持哪些操作或方法。
我可以提供原始 csv 文件。
有人可以帮我将每个 timedelta 值的 seconds 和 milliseconds 部分检索到一个系列或数据帧中吗?
【问题讨论】:
标签: python datetime timestamp timedelta