如何在熊猫中添加或存储超过23小时的小时数

时间:2020-10-27 13:57:57

标签: python pandas

我有一个包含2列的df * 总空闲时间 ,如下所示:

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

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

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

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并根据小时和分钟将它们相加,但是这样做并不成功。有什么办法做这件事吗?

1 个答案:

答案 0 :(得分:3)

您可以在此处尝试使用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, 3
>>> 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
相关问题