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

如何将pandas的timedelta数据转换为AM/PM格式时间

pandas将Timedelta列转为12小时制AM/PM格式方法

你的time列是pandas Timedelta类型,本质是时间偏移量,不需要手动拆分时分秒计算,直接叠加基准时间转datetime后格式化即可,代码可以直接复用:

import pandas as pd

# 核心转换逻辑:用Unix纪元0点作为基准,叠加timedelta得到完整datetime后格式化
df['time_2'] = (pd.Timestamp(0) + df['time']).dt.strftime('%-I:%M %p')

参数说明

  • 基准时间pd.Timestamp(0)是1970-01-01 00:00:00,和timedelta叠加后只会保留你需要的时分秒部分,日期部分不会影响最终输出
  • 格式化字符串各部分含义:
    • %-I:12小时制小时数,自动去除前导零(Windows环境请替换为%#I)
    • %M:两位分钟数,不足自动补零
    • %p:自动匹配AM/PM标识

效果验证

用你给出的示例数据测试,输出完全匹配预期:

time  time_2
0   0 days 05:11:00  5:11 AM
1   0 days 05:12:00  5:12 AM
2   0 days 05:13:00  5:13 AM
3   0 days 05:14:00  5:14 AM
4   0 days 05:15:00  5:15 AM
5   0 days 05:16:00  5:16 AM
6   0 days 15:17:00  3:17 PM
7   0 days 15:18:00  3:18 PM
8   0 days 15:19:00  3:19 PM
9   0 days 15:20:00  3:20 PM

注意:如果你的timedelta存在超过24小时的值,上述方法会自动按24小时取模计算对应时间,如果需要标记跨天可以额外加判断逻辑处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 00:48:16