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

Pandas生成星期列报错:仅能对类日期值使用.dt访问器

问题解决:基于日期生成星期列报错处理

问题原因

你执行df['Date'] = pd.to_datetime(df['Date_Time']).dt.date后,Date列的类型是Python原生的date对象,而非pandas的datetime64类型。pandas的.dt访问器仅支持datetime64这类datetimelike数据,因此会抛出Can only use .dt accessor with datetimelike values错误。

解决方案

方案1:直接基于原Date_Time列生成星期(推荐)

无需拆分单独的Date列,直接处理转换后的Date_Time列即可:

# 确保Date_Time是datetime类型(如果尚未转换)
df['Date_Time'] = pd.to_datetime(df['Date_Time'])

# 生成星期索引(0=周一,6=周日)
df['Weekdays'] = df['Date_Time'].dt.dayofweek

# 可选:生成星期名称(如"Monday")
df['Weekday_Name'] = df['Date_Time'].dt.day_name()

方案2:保留Date列并转换为datetime类型

如果需要保留单独的日期列,需将其转为pandas的datetime64类型,而非Python原生date对象:

# 生成datetime类型的Date列(仅保留日期部分)
df['Date'] = pd.to_datetime(df['Date_Time']).dt.floor('D')

# 现在可以正常使用.dt访问器
df['Weekdays'] = df['Date'].dt.dayofweek

内容的提问来源于stack exchange,提问作者Mohammad.sh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 13:48:22