【问题标题】:pandas selecting original format of to_datetime熊猫选择 to_datetime 的原始格式
【发布时间】:2021-05-22 23:24:03
【问题描述】:

我有以下df:

df

index          Original Date                          
19.02.2021     19.02.2021  
19.02.2021     19.02.2021  
...                 
04.12.2020     04.12.2020 
03.12.2020     03.12.2020

我想将索引列设置为索引,但目前它是字符串类型的对象,所以我将其转换为日期时间对象,然后设置为索引。

df['index'] = pd.date_time(df['index'])
df = df.set_index('index')

看起来像这样:

df

             Original Date
index          
2021-02-19   19.02.2021
2021-02-19   19.02.2021
2021-02-18   18.02.2021
2021-02-18   18.02.2021
2021-02-17   17.02.2021
...
2020-04-12   04.12.2020
2020-03-12   03.12.2020

如您所见,pandas 可以成功转换某些日期。然而有些日子像04.12.2020 被转换为12.04.2020。那么如何指定原始格式为'dd.mm.yyyy',这样pandas才能成功将这个字符串对象转换为datetime。

【问题讨论】:

    标签: python pandas datetime type-conversion


    【解决方案1】:

    您可以将格式添加为参数

    df.index = pd.to_datetime(df.index, format = '%d.%m.%Y')
    

    【讨论】:

    • @oakca 这个呢
    • AttributeError: 'Series' object has no attribute 'strftime' ,正如你所说,我认为它会将其转换为字符串,但我并不想将其转换为字符串
    • format = '%d.%m.%Y' 只是这样可行:)
    【解决方案2】:

    尝试以下方法:

    df.index = pd.to_datetime(df.index, format = '%Y-%m-%d').strftime('%d.%m.%Y')
    

    【讨论】:

    • ValueError: 时间数据 19.02.2021 与指定的格式不匹配
    • 这会将索引更改为字符串数据类型。他想要它在日期时间
    猜你喜欢
    • 2018-06-05
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    • 2017-07-18
    • 2022-01-27
    • 2018-11-12
    • 2020-11-17
    • 1970-01-01
    相关资源
    最近更新 更多