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

为何pandas的to_csv方法中date_format参数无法格式化日期?

问题

调用pandas.DataFrame.to_csv()方法时,指定date_format="%Y %b"参数后,日期未按预期的“年份 月份缩写”格式输出。

执行代码:

import pandas as pd
import datetime
pd.DataFrame([datetime.datetime.now().date()]).to_csv(date_format="%Y %b")

得到输出:

',0\n0,2025-07-31\n'
原因

to_csv的date_format参数仅对pandas Datetime类型的列生效。你传入的是datetime.date对象,pandas会将其识别为object类型,因此该格式化参数不会被触发。

解决方法

将列转换为pandas Datetime类型,有两种常见方式:

  • 方式1:创建DataFrame后,用pd.to_datetime()转换列类型

    import pandas as pd
    import datetime
    
    df = pd.DataFrame([datetime.datetime.now().date()])
    # 转换为Datetime类型
    df[0] = pd.to_datetime(df[0])
    # 输出时指定date_format
    df.to_csv(date_format="%Y %b", index=False)
    
  • 方式2:直接使用datetime.datetime对象创建DataFrame(默认会被识别为Datetime类型)

    import pandas as pd
    import datetime
    
    df = pd.DataFrame([datetime.datetime.now()])
    df.to_csv(date_format="%Y %b", index=False)
    

执行修正后的代码,输出会变为:

0
2025 Jul

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 14:54:51