【问题标题】:Why different answers for the same logic in datetime conversion? [duplicate]为什么日期时间转换中相同逻辑的答案不同? [复制]
【发布时间】:2022-01-27 01:35:17
【问题描述】:

转换日期的输出是'20210514'

input_date = '14-05-2021' # 14th May 2021
converted_date = (pd.to_datetime(input_date).strftime('%Y%m%d'))

但如果我使用以下相同的逻辑,为什么会出现像“20220601”(2022 年 6 月 1 日)这样的结果?我期望的输出是'20220106'。

input_date = '06-01-2022' # 6th Jan 2022
converted_date = (pd.to_datetime(input_date).strftime('%Y%m%d'))

【问题讨论】:

  • Pandas 正在猜测数据格式。显然没有第 14 个月,所以第一个很明显,但第二个可能是 DD-MM-YYYYMM-DD-YYYY

标签: python pandas date


【解决方案1】:

您没有提供输入日期字符串的格式,所以 pandas 必须猜测它。 06-01-2022 不明确:可能是月-日-年或日-月-年。

pandas.to_datetime() 有一个默认为 false 的 dayfirst 参数。因为06 是一个有效的月份,它被解析为一个月份。 14 不是有效的月份,所以 pandas 认为应该是这一天。

试试这个:

input_date = '06-01-2022' # 6th Jan 2022
converted_date = (pd.to_datetime(input_date, dayfirst=True).strftime('%Y%m%d'))

如果您想更具体一些,也可以传入format

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-10
    • 2021-09-20
    • 1970-01-01
    相关资源
    最近更新 更多