我尝试使用pd.to_datetime()的列中的所有值看起来像例如2017-10-02 10:56:33
所以我运行了下面的代码
order_time['order_purchase_timestamp'] = pd.to_datetime(order_time['order_purchase_timestamp'], errors='coerce')
order_time['order_develiered_customer_date'] = pd.to_datetime(order_time['order_delivered_customer_date'], errors='coerce')
然后我尝试做
order_time['date_order'] = order_time['order_purchase_timestamp'].dt.date
order_time['date_delivered'] = order_time['order_delivered_customer_date'].dt.date
返回“ AttributeError:只能将.dt访问器与类似datetime的值一起使用”
我检查了dtype,他们是
dtype('<M8[ns]')
我不知道这里是什么问题。
答案 0 :(得分:0)
您的目标是什么? 您在找这个吗?
order_time['date_order'] = order_time['order_purchase_timestamp'].dt.strftime('%Y/%m/%d')
答案 1 :(得分:0)
您正在做的事情应该可行,我复制了您的示例:
df:
order_purchase_timestamp
2017-10-02 10:56:33
2017-10-02 10:56:33
2017-10-02 10:56:33
123
2017-10-02 10:56:33
代码:
df['order_purchase_timestamp'] = pd.to_datetime(df['order_purchase_timestamp'], errors='coerce')
df['date_order'] = df['order_purchase_timestamp'].dt.date
print(df)
order_purchase_timestamp date_order
0 2017-10-02 10:56:33 2017-10-02
1 2017-10-02 10:56:33 2017-10-02
2 2017-10-02 10:56:33 2017-10-02
3 NaT NaT
4 2017-10-02 10:56:33 2017-10-02
数据出了点问题,如果您可以粘贴示例,将会有所帮助。