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

Python3中如何将Pandas DataFrame的24小时制时间转为12小时制?

解决Pandas中24小时制时间转12小时制的问题

错误原因分析

  • 你指定format="%Y-%m-%d %I:%M:%S %p"时报错,是因为这个格式要求时间字符串必须带AM/PM标识,但你的24小时制数据(比如"2023-07-29 12:32:00")没有这部分内容,格式完全不匹配。
  • 你用df[1]["FORMATTED DATE_TIME--yyyy-MM-dd hh:mm:ss a"].datetime.strptime报错,是因为Pandas的Series对象没有datetime属性,处理时间数据要使用pd.to_datetime()方法或者Series的dt访问器。

正确处理步骤

1. 先统一转换为Pandas datetime类型

不管是12小时制还是24小时制的字符串,先转成Pandas的datetime类型(内部存储格式统一,后续操作更准确),推荐用format='mixed'让Pandas自动推断每条数据的格式:

# 将原时间列转为datetime类型
df["datetime_col"] = pd.to_datetime(df["FORMATTED DATE_TIME--yyyy-MM-dd hh:mm:ss a"], format="mixed")

如果你的数据都是标准ISO8601格式,也可以直接调用pd.to_datetime(df["FORMATTED DATE_TIME--yyyy-MM-dd hh:mm:ss a"]),不用指定格式,Pandas大多能自动识别。

2. 转换为12小时制字符串格式

有了统一的datetime列后,再转成带AM/PM标识的12小时制字符串:

# 生成12小时制格式的时间列
df["12h_formatted_time"] = df["datetime_col"].dt.strftime("%Y-%m-%d %I:%M:%S %p")
  • %I代表12小时制的小时(01-12)
  • %p代表AM/PM标识(大写,若需要小写可尝试%P,部分系统支持)

3. 合并数据并按周处理

格式统一后,就可以合并两个数据源的DataFrame,再做按周的数据分析或可视化:

# 假设另一个数据源已处理好,名为df2
merged_df = pd.concat([df, df2], ignore_index=True)

# 提取周数用于分组
merged_df["week_num"] = merged_df["datetime_col"].dt.isocalendar().week

# 按周统计数据(以数据量为例)
weekly_stats = merged_df.groupby("week_num").size()

# 绘制周数据可视化
import matplotlib.pyplot as plt
weekly_stats.plot(kind="bar")
plt.xlabel("Week Number")
plt.ylabel("Data Volume")
plt.show()

性能优化方案(大数据量场景)

如果format="mixed"处理速度慢,可以先拆分12小时制和24小时制数据分别转换,再合并:

# 筛选带AM/PM的12小时制数据
mask_12h = df["FORMATTED DATE_TIME--yyyy-MM-dd hh:mm:ss a"].str.contains("AM|PM", case=False)
df_12h = df[mask_12h].copy()
df_12h["datetime_col"] = pd.to_datetime(df_12h["FORMATTED DATE_TIME--yyyy-MM-dd hh:mm:ss a"], format="%Y-%m-%d %I:%M:%S %p")

# 筛选不带AM/PM的24小时制数据
df_24h = df[~mask_12h].copy()
df_24h["datetime_col"] = pd.to_datetime(df_24h["FORMATTED DATE_TIME--yyyy-MM-dd hh:mm:ss a"], format="%Y-%m-%d %H:%M:%S")

# 合并处理后的数据集
df = pd.concat([df_12h, df_24h], ignore_index=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 04:07:14