如何使用Python计算数据集中起止时间的小时差值
计算时间差小时数的实现方法
假设你已经完成了起止时间的datetime格式转换,操作步骤如下:
核心计算逻辑
两个datetime64类型的列相减会得到timedelta64类型的时间差结果,调用.dt.total_seconds()转为总秒数后除以3600,即可得到精确的小时差值,该方法支持跨天的时间差计算,不会丢失精度。
代码示例
# 1. 新建时间差列,结果可正可负,结束时间早于开始时间会得到负数 df['duration_hour'] = (df['End Date'] - df['Start Date']).dt.total_seconds() / 3600 # 2. 如果需要统一为正数耗时,可添加abs()取绝对值 # df['duration_hour'] = abs((df['End Date'] - df['Start Date']).dt.total_seconds() / 3600) # 3. 保存为新CSV文件 df.to_csv('result_with_duration.csv', index=False)
注意事项
- 不要直接使用
.dt.hour获取小时数:该属性仅返回timedelta中不足1天的小时部分,跨天的时间差计算会出现结果错误 - 如果仅需要整数小时结果,可将除法替换为整除
// 3600,或对结果使用round()保留指定小数位数
内容的提问来源于stack exchange,提问作者markovv.sim
相关产品推荐
相关产品推荐

