pandas - 从结束时间和运行时间计算 Pandas 的开始时间
问题描述
我刚刚开始我的第一次实习,并且已经被分配了一个给我带来麻烦的任务。我有一个带有“complete_time”和“cycle_time”列的数据框,其中循环列是 %H:%M:%S.%f 中的运行时间。
我需要通过从结束时间中减去运行时间来计算带日期的开始时间。我曾尝试使用 datetime 库,但事实证明这是不成功的,因为它希望两列都采用 datetime 格式,但运行时间没有日期,也不应该有日期。
循环列是从最初看起来像 25.2(以秒为单位)的十进制字符串转换的,使用:
df['cycle_time'] = df['Cycle Time'].astype('float64')
df['cycle_time'] = pd.to_datetime(df['cycle_time'],unit='s')
df['cycle_time'] = pd.Series([val.time() for val in df['cycle_time']])
这是数据框:
complete_time cycle_time
0 2018-05-07 17:12:34.220 00:00:25.200000
1 2018-05-07 17:12:37.807 00:00:00
2 2018-05-07 17:12:43.453 00:00:25.200000
3 2018-05-07 17:12:51.193 00:00:25.100000
4 2018-05-07 17:12:52.223 00:00:25.300000
5 2018-05-07 17:12:54.297 00:00:00
6 2018-05-07 17:12:59.430 00:00:25.200000
7 2018-05-07 17:13:03.047 00:00:00
8 2018-05-07 17:13:08.697 00:00:25.200000
9 2018-05-07 17:13:16.417 00:00:25.200000
我想将 start_time 添加为数据框中的新列。
提前感谢任何方向。
解决方案
使用pd.to_timedelta()
代替pd.to_datetime
:
df['cycle_time'] = pd.to_timedelta(df['Cycle Time'].astype(float), unit='s')
df['start_time'] = df['complete_time'] - df['cycle_time']
推荐阅读
- matlab - 使用 Matlab 的 lsqcurvefit 计算无限弛豫谱
- javascript - 如何从 jquery 中的多个选择器创建对象?
- r - R中用户定义函数的问题
- python-3.x - 第二次传递.format()时出现Python KeyError
- go - 对普罗米修斯的理解
- ffmpeg - 使用 ffmpeg 直播到 Youtube
- c# - 在 Foreach 循环中获取的数据集/JSON 非常慢,看起来不像是数据库调用的问题
- maven - apache spark中的阴影hadoop
- wordpress - 如何从永久链接中删除“index.php”[作曲家上的 WordPress]
- ios - 错误域 = PlugInKit 代码 = 13 “查询已取消” UserInfo = {NSLocalizedDescription = 查询已取消} 与 Objective C Xcode 9.3 iOS 11