Python panda dataframe日期列中的日期格式转换不一致
我有这个熊猫数据框df_缩放 我运行以下代码将日期列中的日期格式从dd mm yyyy转换为yyyy-mm-dd 结果是这样的Python panda dataframe日期列中的日期格式转换不一致,python,python-3.x,pandas,date,Python,Python 3.x,Pandas,Date,我有这个熊猫数据框df_缩放 我运行以下代码将日期列中的日期格式从dd mm yyyy转换为yyyy-mm-dd 结果是这样的 Name Date Sales 283 AXP 2009-10-02 1.143791 284 AXP 2009-11-02 1.065359 285 AXP 2009-12-02 1.039869 286 AXP 2009-02-13 1.049020 287 AXP 2
Name Date Sales
283 AXP 2009-10-02 1.143791
284 AXP 2009-11-02 1.065359
285 AXP 2009-12-02 1.039869
286 AXP 2009-02-13 1.049020
287 AXP 2009-02-17 0.975817
288 AXP 2009-02-18 0.922222
在前3行中,转换的日期格式为yyyy dd mm。在最后3行中,转换的日期格式为yyyy-mm-dd。在转换过程中产生这种不一致的代码有什么问题
我正在使用python v3.6添加dayfirst
我在熊猫身上观察到类似的行为。另请参见的可能副本。不幸的是,熊猫无法确定转换的日期格式,除非手动指定。因此,pandas autoconvert开始时假设日期为半美式格式mm dd yyyy,然后遇到与mm dd yyyy不符的值,如18-02,并尝试另一种格式dd mm yyyy。pandas仍然可以通过猜测做得更好,因为大多数人应该获胜。但在这种情况下,这是离题的。
df_scaled['Date'] = pd.to_datetime(df_scaled['Date']).dt.strftime('%Y-%m-%d')
Name Date Sales
283 AXP 2009-10-02 1.143791
284 AXP 2009-11-02 1.065359
285 AXP 2009-12-02 1.039869
286 AXP 2009-02-13 1.049020
287 AXP 2009-02-17 0.975817
288 AXP 2009-02-18 0.922222
df_scaled['Date'] = pd.to_datetime(df_scaled['Date'], dayfirst=True).dt.strftime('%Y-%m-%d')
Out[510]:
283 2009-02-10
284 2009-02-11
285 2009-02-12
286 2009-02-13
287 2009-02-17
288 2009-02-18
Name: Date, dtype: datetime64[ns]