为什么pandas无法访问DataFrame的submission_date日期属性
报错原因及解决方案
核心原因
从你打印的covid.head()输出可以看到,submission_date是DataFrame的行索引(index),不属于常规列字段,因此无法通过covid.submission_date这种访问列属性的方式调用,触发AttributeError报错。
解决方法
方案1:直接访问行索引完成过滤
注意你原代码中使用|(或运算符)的逻辑有误:任意日期都会满足「小于2021-05-31」或「大于2020-06-01」的条件,等于没有执行过滤。如果要保留两个日期区间内的数据,需要换成&(与运算符),修正代码如下:# 先把索引转为datetime格式,避免字符串日期比较出错 covid.index = pd.to_datetime(covid.index) # 过滤区间内的数据 covid = covid[(covid.index < "2021-05-31") & (covid.index > "2020-06-01")]方案2:把索引重置为普通列后再过滤
如果后续需要频繁使用submission_date字段,可以先把索引转为普通列,再用你原来的写法操作:# 索引转普通列 covid = covid.reset_index() # 转日期格式 covid.submission_date = pd.to_datetime(covid.submission_date) # 执行过滤 covid = covid[(covid.submission_date < "2021-05-31") & (covid.submission_date > "2020-06-01")]
内容的提问来源于stack exchange,提问作者craigcarpenter2
相关产品推荐
相关产品推荐

