Python Pandas中对字符串格式时间列的小时值执行%24取余操作方法问询
时间列小时取余处理方案
适用场景
针对字符串格式的HH:MM:SS时间列,小时部分数值超出24的场景,对小时执行%24取余运算,输出标准格式的时间字符串。
实现步骤(Python + Pandas)
- 导入依赖并读取CSV数据集
import pandas as pd # 替换为你的实际文件路径 df = pd.read_csv("./sales_data.csv")
- 定义时间处理函数
def adjust_time_hour(time_str: str) -> str: # 拆分时分秒 hour, minute, second = time_str.split(":") # 小时对24取余,不足2位补前导零 adjusted_hour = f"{int(hour) % 24:02d}" # 拼接返回标准时间字符串 return f"{adjusted_hour}:{minute}:{second}"
- 应用函数处理时间列
# 生成新的处理后列,也可直接赋值给df['time']覆盖原列 df['fixed_time'] = df['time'].apply(adjust_time_hour)
效果验证
处理前后的时间对照示例:
| 原时间 | 处理后时间 |
|---|---|
| 45:13:45 | 21:13:45 |
| 54:22:20 | 06:22:20 |
| 34:18:01 | 10:18:01 |
| 17:23:36 | 17:23:36 |
如果需要同时将超出的天数累加到日期列,可以在处理小时的同时计算int(hour) // 24得到需要增加的天数,再转换日期格式做日期偏移即可。
内容的提问来源于stack exchange,提问作者jixubi
相关产品推荐
相关产品推荐

