python - 如何在熊猫中添加或存储 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 并根据小时和分钟将它们相加,但我没有成功。有什么办法可以做这件事吗?
解决方案
您可以尝试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
推荐阅读
- python - 在两个关键字之间打印单词
- reactjs - 元标记服务器端渲染
- c++ - 依赖名称的参数依赖查找
- c# - Rhino Mocks Stub 不调用 .WhenCalled 操作
- swift - 为什么在 Swift 中通过 Selector 调用时函数的默认参数不被尊重?
- database - 当数据类具有内部类时,房间数据库表创建错误
- header-files - python3.7-dev和python3-dev头文件的区别
- c# - csvhelper - 如何为复杂对象创建映射器
- c - 如何在不使用 stdio.h 的情况下读取 txt 文件的最后 n 个字符?
- swift - 初始化程序的问题:在 super.init 调用时未初始化属性“self.options”