我最近更新了我的python安装从3.11.2到3.11.3,Pandas版本是2.0.2
我现在得到这个错误:
TypeError: Cannot cast DatetimeArray to dtype datetime64[D]
当我尝试执行此操作时:
df = df[df['CancelDate'].astype('datetime64[D]') >= (datetime.now() - relativedelta(years=2))]
在此dataframe上:
mydataset = {
'CancelDate': ["2021-09-07", "2021-07-26", "2021-11-01","2015-06-15"]
}
df = pandas.DataFrame(mydataset)
在更新之前,我没有得到给定的错误。有谁能帮我认识到我的错误吗?
3条答案
按热度按时间tquggr8v1#
也许我是无知的,但为什么你要把一个特定的日期时间类型放在首位?
顺便说一句,也不需要使用
datetime
。3qpi33ja2#
要解决此问题,可以使用
pd.pd.to_datetime
函数在执行比较之前将“CancelDate”列转换为DatetimeArray
。mo49yndu3#
要修复您的问题,您可以使用
dt
访问器提取CancelDate
列的日期组件,然后将其转换为datetime64[D]
例如: