【问题标题】:Converting to datetime - ParserError: Unknown string format: 2022-02-17 7转换为日期时间 - ParserError:未知字符串格式:2022-02-17 7
【发布时间】:2023-03-30 23:17:01
【问题描述】:

我有一个 pandas 数据框,其中包含一些字符串值,如果小时小于 10,则日期的小时为一位数,如下所示:

2022-02-17 7

我现在想将此字符串转换为日期时间格式,但在应用时

df['datetime'] = pd.to_datetime(df['datetime'], infer_datetime_format=True)

我得到一个 ParserError:

ParserError: Unknown string format: 2022-02-17 7

我该如何解决这个问题?

【问题讨论】:

    标签: pandas datetime error-handling


    【解决方案1】:

    用途:

    df = pd.DataFrame({'datetime':['2022-02-17 7']})
    df['datetime'] = df['datetime'].str.replace(' (\d{1})', ' 0\\1')
    df['datetime'] = pd.to_datetime(df['datetime'], format='%Y-%m-%d %H')
    

    结果:

    更一般的情况,也可以处理两位数:

    df = pd.DataFrame({'datetime':['2022-02-17 17', '2022-02-17 7']})
    df['datetime'] = df['datetime'].str.replace('\s(\d)$', ' 0\\1')
    

    结果:

    【讨论】:

    • 这给了我一个ValueError:ValueError: time data 2022-02-17 7 doesn't match format specified
    • 查看更新后的代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-10
    • 1970-01-01
    • 2020-11-19
    • 1970-01-01
    相关资源
    最近更新 更多