You need to enable JavaScript to run this app. 如何用Python Pandas将24小时制时间范围转换为12小时制AM/PM格式
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python Pandas将24小时制时间范围转换为12小时制AM/PM格式

错误原因

  • datetime.strptime属于Python标准库方法,仅支持传入单个字符串参数,无法直接处理Pandas Series(整列数据),因此触发类型错误。
  • pd.to_datetime返回的是Pandas Datetime格式的Series,调用时间相关方法需要通过.dt访问器,直接访问.datetime属性不存在,因此触发属性错误。

可行解决方案

import pandas as pd

# 原有拆分代码保持不变
df[['start', 'end']] = df.Time.str.split("-", expand=True)

# 1. 将两列转换为Pandas datetime类型,指定格式可避免自动解析异常
df['start'] = pd.to_datetime(df['start'], format='%H:%M:%S')
df['end'] = pd.to_datetime(df['end'], format='%H:%M:%S')

# 2. 输出12小时制格式的时间字符串(通过.dt访问器调用strftime)
print(df['start'].dt.strftime('%I:%M %p'))

# 若需要直接将列存储为格式化后的字符串,直接赋值即可
df['start_formatted'] = df['start'].dt.strftime('%I:%M %p')
df['end_formatted'] = df['end'].dt.strftime('%I:%M %p')

如果不需要保留原始datetime类型,也可以一步完成转换:

df['start_formatted'] = pd.to_datetime(df['start'], format='%H:%M:%S').dt.strftime('%I:%M %p')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 02:54:05