【发布时间】:2022-01-24 21:49:42
【问题描述】:
GTFS stop_times.txt 文件中的According to GTFS specification、arrival_time 的小时数可能大于 24。
对于服务日午夜之后发生的时间,请输入时间 作为大于 24:00:00 的 HH:MM:SS 本地时间当天的值 旅行计划的开始。
这些值旨在代表车辆在每个特定时间将进行的未来停靠。
我有一个由一堆列组成的 pandas 数据框,其中一个列存储 arrival_time 值。我想要完成的是将那些大于 24 的值转换为实际的 24 小时时间戳,例如将25:34:21 转换为01:34:21。
首先,我尝试将str.replace 与正则表达式一起使用,但很快就变得一团糟。
df['arrival_time'].str.replace(r'\s(24)', '00', regex=True)
df['arrival_time'].str.replace(r'\s(25)', '01', regex=True)
df['arrival_time'].str.replace(r'\s(26)', '02', regex=True)
...
df['arrival_time'].str.replace(r'\s(31 )', '07', regex=True)
...
后来,我浏览了timedelta objects 以尝试解决问题。这里出了问题的是arrival_time 中的每个值可能会有所不同,具体取决于从服务器中提取这些值的时间。早上值可能会上升到例如27,但在晚上更新时,值可能会超过 36。这使得指定一天的跨度有点困难。
我不太确定应该从哪里解决我的问题。
原创专栏:
%Y-%m-%d 13:44:01
%Y-%m-%d 13:56:23
%Y-%m-%d 17:59:02
%Y-%m-%d 24:21:45
%Y-%m-%d 26:15:14
想要的状态:
%Y-%m-%d 13:44:01
%Y-%m-%d 13:56:23
%Y-%m-%d 17:59:02
%Y-%m-%d+1 00:21:45
%Y-%m-%d+1 02:15:14
【问题讨论】: