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

如何用Pandas生成含当日日期与00:00:00时间的Datetime数据

生成当日日期+00:00:00格式的时间数据

你遇到的问题其实是pandas的显示逻辑问题——normalize()已经把时间部分重置为午夜0点了,只是默认显示时会省略全0的时间部分。下面给你几种实用的实现方式:

方法1:利用normalize() + 格式化输出

normalize()本质已经将时间设为00:00:00,用strftime()强制输出完整格式即可:

import pandas as pd

# 生成带00:00:00的字符串格式结果
today_midnight = pd.to_datetime('today').normalize().strftime('%Y-%m-%d %H:%M:%S')
print(today_midnight)  # 输出示例:2022-07-20 00:00:00

方法2:直接构造午夜时间对象

用Python标准库的datetime模块组合当日日期和午夜时间,再转成pandas格式:

from datetime import datetime, date
import pandas as pd

# 构造当日午夜的datetime对象
today_date = date.today()
midnight_time = datetime.min.time()
today_midnight = datetime.combine(today_date, midnight_time)

# 转成pandas的datetime类型(可选)
pd_midnight = pd.to_datetime(today_midnight)
print(pd_midnight.strftime('%Y-%m-%d %H:%M:%S'))

方法3:用Timestamp的floor方法

pandas的Timestamp提供了floor('D')方法,可以直接将时间向下取整到当日零点:

import pandas as pd

today_midnight = pd.Timestamp.today().floor('D')
print(today_midnight.strftime('%Y-%m-%d %H:%M:%S'))

补充验证normalize()的真实值

如果你怀疑normalize()的结果没有时间部分,可以用以下代码验证:

dt = pd.to_datetime('today').normalize()
print(dt.hour, dt.minute, dt.second)  # 输出:0 0 0

它的时间部分确实是全0,只是pandas默认显示时做了简化。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 10:48:19