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

如何将Pandas Series中的datetime日期格式改为YYYYMMDD?

问题:修改Pandas Series日期输出格式

需求

将Pandas Series中的日期输出从YYYY-MM-DD格式改为YYYYMMDD格式,示例如下:

原输出

listOfDates = df2['TradeDate'].drop_duplicates().reset_index(drop=True)
print(listOfDates)

0   2022-02-02
1   2022-02-08
2   2022-05-01
3   2022-05-06
4   2022-06-05
5   2022-06-17
6   2022-07-30
7   2022-08-03
8   2022-10-10
9   2022-11-18
Name: TradeDate, dtype: datetime64[ns]

期望输出

listOfDates = df2['TradeDate'].drop_duplicates().reset_index(drop=True)
print(listOfDates)

0   20220202
1   20220208
2   20220501
3   20220506
4   20220605
5   20220617
6   20220730
7   20220803
8   20221010
9   20221118
Name: TradeDate, dtype: datetime64[ns]

尝试过的错误代码

直接调用strftime报错,提示Pandas Series无该属性:

listOfDates = df2['TradeDate'].drop_duplicates().reset_index(drop=True).strftime("%Y%m%d")

解决方法

方法1:仅修改显示格式(保留datetime类型)

如果只需打印时显示为无横杠格式,且保留日期类型用于后续运算,可设置Pandas全局日期显示格式:

import pandas as pd

# 设置全局日期显示格式
pd.options.display.date_format = '%Y%m%d'

listOfDates = df2['TradeDate'].drop_duplicates().reset_index(drop=True)
print(listOfDates)

执行后输出会变为期望的YYYYMMDD格式,且Series的dtype仍为datetime64[ns]。

方法2:转换为字符串类型(改变数据类型)

若需要将日期转为字符串存储,使用dt访问器调用strftime(针对datetime类型Series的专属访问器):

listOfDates = df2['TradeDate'].drop_duplicates().reset_index(drop=True).dt.strftime("%Y%m%d")
print(listOfDates)

此时Series的dtype会变为object(字符串类型)。

内容的提问来源于stack exchange,提问作者K.Best

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 06:26:28