首页 > 解决方案 > 如何在熊猫中添加或存储 23 小时以上的时间

问题描述

我有一个 df 有 2 列 *总空闲时间月份如下:

Total Idle Time  Month
0   0:00:00        December
1   0:02:24        December
2   26:00:00       December
3   0:53:05        December
4   28:03:39       December

这里的Total Idle Time列是字符串格式,但我想将其转换为时间格式,因为我想添加 12 月份的总空闲时间。

我尝试将列转换为日期时间,如下所示:

data['Total Idle Time '] =  pd.to_datetime(data['Total Idle Time '], format='%H:%M:%S')

但是,我收到如下错误:

time data '28:03:39' does not match format '%H:%M:%S' (match)

我想过将列转换为 int 并根据小时和分钟将它们相加,但我没有成功。有什么办法可以做这件事吗?

标签: pythonpandas

解决方案


您可以尝试pd.to_timedelta()在此处改用:

>>> df['Idle Time'] = pd.to_timedelta(df["Idle Time"])
>>> df

   Total       Idle_Time     Month
0      0 0 days 00:00:00  December
1      1 0 days 00:02:24  December
2      2 1 days 02:00:00  December
3      3 0 days 00:53:05  December
4      4 1 days 04:03:39  December

如果需要,您可以使用它来转换为数字,方法是缩放以下结果.total_seconds()

# in hours
>>> df['Idle Time'] = df['Idle Time'].dt.total_seconds() / 3600
>>> df

   Total  Idle_Time     Month
0      0   0.000000  December
1      1   0.040000  December
2      2  26.000000  December
3      3   0.884722  December
4      4  28.060833  December

推荐阅读