即使使用熊猫日期时间转换,数据类型仍然显示"对象"?



我正在使用COVID19数据并有一个日期列。它最初是 Int64,所以我使用以下函数将其更改为日期时间对象:

us['date'] = pd.to_datetime(us['date'], format='%Y%m%d', errors='ignore')
us['date'] = us['date'].dt.strftime("%m/%d")

当我打印出结果时,我看到列中的所有数据都是"1/1、1/4、2/1 ....",等等。(此处没有空值)我正在尝试按月使用group,所以我尝试使用另一个函数来仅获得月份,如下所示:

us['date'].dt.strftime("%m")

但是我收到错误:

AttributeError: Can only use .dt accessor with datetimelike values

我不明白,因为我使用 pd_datetime 将数据类型更改为日期时间,那么此列是否应该已经是日期时间,而不是对象?当我检查数据类型时,它显示"O"。为什么会这样?

当我们忽略时,如果任何项目无法更改,它将ignore整个列,我们应该做coerce

us['date'] = pd.to_datetime(us['date'], format='%Y%m%d', errors='coerce')
us['date'].dt.strftime('%B')

让我们试试这个:

us['monthanddate'] = us['date'].dt.strftime("%m/%d")

仅一个月

us['monthonly'] = us['date'].dt.strftime("%m")

最新更新