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

如何判断Pandas datetime列是否在指定时间范围并生成新日期列

解决方案

核心采用Pandas向量化运算实现,全程不需要遍历DataFrame行,处理效率远高于循环操作。


前置操作

首先确保Datetime列已经转换为Pandas的datetime64格式,未转换的话先执行以下代码:

import pandas as pd
import numpy as np

df['Datetime'] = pd.to_datetime(df['Datetime'])

核心实现代码

直接通过条件判断配合时间属性提取完成逻辑:

df['Date'] = np.where(
    # 匹配00:00:00 ~ 02:00:00区间(左闭右开,完全符合规则要求)
    df['Datetime'].dt.hour < 2,
    # 满足条件则日期减1天
    df['Datetime'].dt.date - pd.Timedelta(days=1),
    # 不满足条件直接取原日期
    df['Datetime'].dt.date
)

可选:输出datetime类型的Date列

如果你希望Date列为带00:00:00时间的datetime格式(方便后续做时间运算),可以调整为:

df['Date'] = np.where(
    df['Datetime'].dt.hour < 2,
    df['Datetime'].dt.floor('d') - pd.Timedelta(days=1),
    df['Datetime'].dt.floor('d')
)

效果验证

用你提供的样例数据测试,最终输出结果如下:

ColADatetimeColBDate
12021-01-01 05:02:22SomeVal2021-01-01
22021-01-01 01:01:22SomeOtherVal2020-12-31

完全符合规则要求。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 05:24:03