You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在DataFrame中给就寝开始时间加上指定小时数得到中点时间

实现方案

格式处理说明

需要先处理两列的格式问题才能做时间运算:

  • 'Midpoint (h)'列使用逗号作为小数分隔符,需替换为小数点后转为数值类型
  • 'Bedtime Start'列为12小时制的时间字符串,需转为pandas内置的时间类型支持时间加减

完整代码

import pandas as pd

# 此处替换为你自己的DataFrame读取逻辑,示例仅做测试用
df = pd.DataFrame({
    'Bedtime Start': ['12:15 am', '10:31 pm'],
    'Midpoint (h)': ['4,534', '3,22']
})

# 1. 转换Midpoint列为可计算的数值类型
df['Midpoint (h)'] = df['Midpoint (h)'].str.replace(',', '.').astype(float)

# 2. 转换Bedtime Start列为时间类型
df['Bedtime Start'] = pd.to_datetime(df['Bedtime Start'], format='%I:%M %p')

# 3. 时间相加生成新列
df['Time at Midpoint'] = df['Bedtime Start'] + pd.to_timedelta(df['Midpoint (h)'], unit='h')

# 4. 格式化为指定字符串样式,%H对应24小时制,需要12小时制可替换为%I
df['Time at Midpoint'] = df['Time at Midpoint'].dt.strftime('%H:%M %p').str.lower()

补充说明

  • 时间运算会自动处理跨天场景,比如10:31 pm加3.22小时会自动输出次日的01:44 am
  • 若不需要24小时制的小时显示,将最后一行的%H改为%I即可输出06:45 pm这类12小时制格式

内容的提问来源于stack exchange,提问作者Suze Gort

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 18:15:04