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

Python:如何从DataFrame的datetime.time类型列提取小时?

解决Pandas中datetime.time类型列无法使用.dt.hour的问题

嘿,这个错误我太熟悉了!你碰到的AttributeError是因为Pandas的.dt访问器只支持完整的datetime64[ns]类型数据,而你的TICKET_TIME列是datetime.time类型(只有时间部分,没有关联日期),所以没法用.dt来提取小时。

下面给你两种简单靠谱的解决方法:

方法1:直接访问time对象的hour属性(最直接高效)

TICKET_TIME里的每个元素都是datetime.time对象,它本身就自带hour属性,我们可以用apply直接提取:

import pandas as pd

# 假设你的DataFrame是df
df['HOUR'] = df['TICKET_TIME'].apply(lambda x: x.hour)

运行后你就能得到对应时间的小时数,比如18、19、10这类数值。

方法2:转换为完整datetime类型后提取

如果后续还需要用到完整的日期时间信息,可以把TRADE_DATE和TICKET_TIME合并成完整的datetime64类型列,再用.dt.hour:

# 合并日期与时间字符串,转换为datetime类型
df['full_datetime'] = pd.to_datetime(df['TRADE_DATE'].astype(str) + ' ' + df['TICKET_TIME'].astype(str))
# 提取小时
df['HOUR'] = df['full_datetime'].dt.hour

这样不仅得到了小时列,还多了一个完整的日期时间列,方便后续其他时间相关的操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:38:50