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

如何在Pandas的DateTime列中检查特定时间维度是否存在?

检查Pandas DateTime列是否包含特定时间部分(以小时为例)

如果需要判断Pandas的DateTime列是否包含小时这类时间部分,比如计算时间间隔前先确认数据是否有小时级精度,可以按以下两种场景处理:

场景1:日期列是字符串格式

直接通过字符串匹配判断是否包含时间格式(比如含冒号的小时/分钟部分):

import pandas as pd

# 构建示例数据
data = {
    'datetime': ['2020-01-21 17:24:00', '2020-01-22', '2020-01-23 17:28:00', '2020-01-24', '2020-01-24']
}
df = pd.DataFrame(data)

# 检测是否包含小时相关的时间格式
df['是否包含小时部分'] = df['datetime'].str.contains(r'\d{2}:\d{2}').map({True: '是', False: '否'})

场景2:日期列已转为datetime64类型

如果列已经是标准datetime类型,可通过检查时间部分(小时、分钟、秒)是否不全为0来判断:

import pandas as pd

# 构建示例数据并转为datetime类型
data = {
    'datetime': ['2020-01-21 17:24:00', '2020-01-22', '2020-01-23 17:28:00', '2020-01-24', '2020-01-24']
}
df = pd.DataFrame(data)
df['datetime'] = pd.to_datetime(df['datetime'])

# 判断时间部分是否非零
has_time_part = (df['datetime'].dt.hour != 0) | (df['datetime'].dt.minute != 0) | (df['datetime'].dt.second != 0)
df['是否包含小时部分'] = has_time_part.map({True: '是', False: '否'})

最终结果

datetime是否包含小时部分
2020-01-21 17:24:00是
2020-01-22否
2020-01-23 17:28:00是
2020-01-24否
2020-01-24否

如果要检查其他时间维度(比如年、月),只需调整判断逻辑即可。比如检查是否包含年份,对于datetime类型来说所有值都包含年份;如果是字符串则可匹配四位数字的年份格式。

内容的提问来源于stack exchange,提问作者Hewarathna Ashen Iranga

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 03:21:00