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

Python中如何仅显示Timestamp列的日期部分?

解决Pandas Timestamp列仅显示日期部分的问题

嗨,我来帮你搞定这个问题!你遇到的情况是因为pd.to_datetime只是把字符串解析成datetime类型的对象,本身还是会保留时分秒信息,而且你写的format参数还多了个末尾的%,这也是导致解析后没变化的原因之一。下面给你几种实用的解决方法:

方法一:提取Python日期对象

先把列正确转换为datetime类型,再用dt.date提取纯日期部分,得到的是Python原生的date对象:

# 第一步:正确解析datetime(format要匹配你的输入格式)
df["FileReceivedTime"] = pd.to_datetime(df["FileReceivedTime"], format="%Y-%m-%d %H:%M:%S")
# 第二步:提取日期部分
df["OnlyDate"] = df["FileReceivedTime"].dt.date

这样OnlyDate列里就只会显示类似2018-05-03的日期内容啦。

方法二:保留Pandas datetime类型并清除时分秒

如果你想保持列的类型还是Pandas的datetime64,可以用dt.floor('D')或者dt.normalize()把时分秒归零,显示的时候就只会展示日期部分:

# 先确保列是datetime类型(Pandas通常能自动识别标准格式,不用手动写format)
df["FileReceivedTime"] = pd.to_datetime(df["FileReceivedTime"])
# 用floor方法把时间截断到天
df["OnlyDate"] = df["FileReceivedTime"].dt.floor('D')
# 或者用normalize方法,效果一致
# df["OnlyDate"] = df["FileReceivedTime"].dt.normalize()

此时OnlyDate列的内容会是2018-05-03 00:00:00,你可以通过显示设置只查看日期部分,或者用下面的方法转成纯字符串日期。

方法三:转成纯字符串格式的日期

如果需要直接得到字符串形式的日期(比如"2018-05-03"),可以用dt.strftime指定输出格式:

df["FileReceivedTime"] = pd.to_datetime(df["FileReceivedTime"])
df["OnlyDateStr"] = df["FileReceivedTime"].dt.strftime("%Y-%m-%d")

最后再提醒一下:你之前写的format="%Y%m%d%"是错误的,多了一个末尾的%,如果你的输入是2018-05-03 07:20:17这种带横杠和时分秒的标准格式,其实不用手动指定format,Pandas也能自动识别哦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:54:58