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

调用add_datepart()拆分pandas日期列触发KeyError如何处理?

错误原因

  • 调用add_datepart()参数使用错误:fastai的add_datepart函数第二个参数接收的是日期列的列名字符串,而非日期列的Series对象。你传入了trainingSetFirstCycle.date(整列日期值),函数会将这组值当做列名在DataFrame中查找,自然找不到对应列,触发KeyError。
  • pandas.read_csv参数使用错误:read_csv的第二个位置参数是分隔符sep,你额外传入的字典被当做分隔符处理,pandas尝试对字典做编码操作时触发属性报错。你误将本应传给parse_dates的参数放在了错误的位置,且你读取的csv文件本身已经有date字段,不需要额外传入自定义的日期列表。

解决方案

  1. 先执行正确的数据读取代码,移除多余的字典参数:
import pandas
import numpy
from fastai.tabular.core import add_datepart

trainingSetFirstCycle = pandas.read_csv(
    "C:/Users/henri/OneDrive/Dokumente/Berufseinstieg/Sprachtechnologie/Predicting_Bike_Rental_Demand/Datasets/train_datetime_split.csv",
    low_memory=False, 
    parse_dates=["date"]
)
trainingSetFirstCycle.rent_count = numpy.log(trainingSetFirstCycle.rent_count)
  1. 调用add_datepart时传入日期列的列名字符串即可:
# add_datepart默认会修改原DataFrame,不需要赋值也可以生效,drop=True会删除原date列
add_datepart(trainingSetFirstCycle, "date", drop=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 18:45:05