熊猫:"to_datetime"功能与日期不一致



当我读取一个日期,比如'01/12/2020',它的格式是dd/mm/yyyy,pd.to_datetime(),它检测到月份为01

pd.to_datetime('01/12/2020').month
>> 1

但是这种行为是不一致的。

当我们创建一个包含这种格式的日期列的数据框,并使用相同的to_datetime函数进行转换时,它会检测到12作为月份。

tt.dt.month[0]
>> 12

原因是什么?

pandas会自动尝试检测日期格式,这对您来说可能非常好,也可能很烦人。

要明确,使用dayfirst参数:

pd.to_datetime('01/12/2020', dayfirst=False).month
# 1
pd.to_datetime('01/12/2020', dayfirst=True).month
# 12

歧义用法示例:

tt = pd.to_datetime(pd.Series(['30/05/2020', '01/12/2020']))
tt.dt.month
UserWarning: Parsing dates in DD/MM/YYYY format when dayfirst=False (the default) was specified. This may lead to inconsistently parsed dates! Specify a format to ensure consistent parsing.
tt = pd.to_datetime(pd.Series(['30/05/2020', '01/12/2020']))
0    5
1    1
dtype: int64

最新更新