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

Python Pandas:将日期列转为指定格式并保留datetime64类型

问题

我从CSV文件创建了一个DataFrame,其中包含一列格式为11.01.2023的日期值。尝试替换分隔符及使用pd.to_datetime转换后,该列数据类型变为datetime64[ns],但显示格式为yyyy-mm-dd。请问如何将该Date列转换为dd/mm/yyyy或dd.mm.yyyy格式,同时保持datetime64数据类型?

示例代码

import pandas as pd

df = pd.DataFrame({'Date': {0: '11.01.2023 ', 1: '22.01.2023', 2: '08.02.2023' }, 
                  'Price':{0:123, 1:456, 2:789}})

尝试代码

import pandas as pd 
df = pd.DataFrame({'Date': {0: '11.01.2023 ', 1: '22.01.2023', 2: '08.02.2023' }, 
                  'Price':{0:123, 1:456, 2:789}})

df['Date'].str.replace('.', '/', regex=False)
print(df.dtypes)    # Date列仍为object格式

df['Date'] = pd.to_datetime(df['Date'], dayfirst=True) 
print(df.dtypes)    # Date列变为datetime64[ns]格式
print('df', df)     # 日期列显示为yyyy-mm-dd格式
解决方法

需要明确:datetime64[ns]类型的日期存储格式和显示格式是分离的,数据本身是时间戳,显示格式只是输出时的表现形式。要保持datetime64类型同时自定义显示格式,有两种常用方式:

1. 设置全局日期显示格式

通过修改pandas的全局配置,让所有datetime类型的列都按指定格式显示:

import pandas as pd

# 初始化DataFrame并转换日期类型
df = pd.DataFrame({'Date': {0: '11.01.2023 ', 1: '22.01.2023', 2: '08.02.2023' }, 
                  'Price':{0:123, 1:456, 2:789}})
df['Date'] = pd.to_datetime(df['Date'], dayfirst=True)

# 设置全局日期显示格式为dd.mm.yyyy
pd.options.display.date_format = '%d.%m.%Y'
# 如果要设置为dd/mm/yyyy则用 '%d/%m/%Y'

print(df)
print(df.dtypes)  # 仍为datetime64[ns]类型

2. 针对单列设置临时显示格式

如果不想修改全局配置,可使用style.format方法临时设置单列的显示格式,仅在输出表格时生效:

import pandas as pd

df = pd.DataFrame({'Date': {0: '11.01.2023 ', 1: '22.01.2023', 2: '08.02.2023' }, 
                  'Price':{0:123, 1:456, 2:789}})
df['Date'] = pd.to_datetime(df['Date'], dayfirst=True)

# 针对Date列设置显示格式为dd/mm/yyyy
styled_df = df.style.format({'Date': lambda x: x.strftime('%d/%m/%Y')})
# 如果要dd.mm.yyyy则用 '%d.%m.%Y'

display(styled_df)  # 在Jupyter环境中显示格式化后的表格
print(df.dtypes)    # 数据类型保持datetime64[ns]

注意:不要使用df['Date'].dt.strftime('%d.%m.%Y'),这种方式会将列转换为字符串(object类型),无法保持datetime64类型。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 12:47:20