【发布时间】:2020-07-09 03:51:49
【问题描述】:
我在 csv 数据集中有列 start_time 和 end_time,时间格式为 HH:MM(数据类型是字符串类型,因为它来自 csv)。我想使用 panadas(或任何实际的东西)来获取两列之间的时间增量,并将其放入一个名为 diff_minutes 的新列中。为此,我尝试了以下方法,
dataset['diff_minutes'] = dataset['end_time'] - dataset['start_time']
dataset['diff_minutes']= dataset['diff_minutes']/np.timedelta64(1,'m')
但我收到以下错误,ValueError: hour must be in 0..23。我检查了我的数据集(它很大),结果发现我有几个小时超过 23 小时。例如,开始时间:25:58,结束时间:29:20。是否有另一种方法可以获取大于 23 的值的时间增量?
这是示例数据:
import pandas as pd
from io import StringIO
s = '''\
start_time,end_time
25:58,29:20
25:30,25:30
02:07,03:11
'''
df = pd.read_csv(StringIO(s))
看起来像:
start_time end_time
0 25:58 29:20
1 25:30 25:30
2 02:07 03:11
期望的输出
| start_time | end_time | diff_minutes
______________________________________
| 25:58 | 29:20 | 202
| 25:30 | 25:30 | 0
| 02:07 | 03:11 | 64
【问题讨论】:
-
请提供minimal reproducible example,以及完整的错误消息。
标签: python pandas datetime time