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

如何使用Pandas DataFrame生成指定格式的日期时间字符串?

解决Pandas DataFrame日期转换为%A, %B %d, %Y格式的问题

错误原因分析

  1. 你提取的date是字符串类型,而datetime.strftime()需要传入datetime对象作为第一个参数,直接传字符串会触发TypeError。
  2. 混淆了strptime和strftime的作用:
    • strptime:将字符串解析为datetime对象
    • strftime:将datetime对象格式化为指定格式的字符串

优先推荐的Pandas方案

利用Pandas的datetime列处理能力,一次性完成类型转换和格式化,效率更高:

import pandas as pd

# 测试数据
trial_data = [["EXA001.701","4/21/2023"]]
trial_df = pd.DataFrame(trial_data, columns=["matterNo","trial_date"])

# 1. 将字符串日期列统一转换为datetime类型(自动识别格式,特殊格式可指定format="%m/%d/%Y")
trial_df['trial_date'] = pd.to_datetime(trial_df['trial_date'])

# 目标编号输入
matter_input = "EXA001.701"

# 2. 提取并格式化为目标格式
formatted_date = trial_df.loc[trial_df['matterNo'] == matter_input, 'trial_date'].dt.strftime("%A, %B %d, %Y").iloc[0]

print(formatted_date)  # 输出:Friday, April 21, 2023

说明:

  • pd.to_datetime()能自动识别绝大多数常见日期格式,批量转换整列比单独处理单个元素更高效。
  • Pandas的dt访问器专门用于datetime列的元素级操作,dt.strftime()可直接对整列应用格式化规则。

替代方案(使用datetime模块)

如果仅需处理单个提取的日期字符串,可直接用datetime模块完成解析和格式化:

import pandas as pd
from datetime import datetime

# 测试数据
trial_data = [["EXA001.701","4/21/2023"]]
trial_df = pd.DataFrame(trial_data, columns=["matterNo","trial_date"])

matter_input = "EXA001.701"
# 提取原始日期字符串
date_str = trial_df.loc[trial_df['matterNo'] == matter_input, 'trial_date'].iloc[0]

# 先解析为datetime对象,再格式化为目标字符串
dt_obj = datetime.strptime(date_str, "%m/%d/%Y")
formatted_date = dt_obj.strftime("%A, %B %d, %Y")

print(formatted_date)  # 输出:Friday, April 21, 2023

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 15:22:26