我有一个Pandas框架,其中一列包含日期。但是,日期的格式并不一致。在列中具有不同类型的日期格式。当我读取的数据在datrame的列类型是日期列是对象,我希望它是“日期”。我的样本数据是:
01/12/2022
22/02/2012
12-Jan-2023
19-10-2000
03/Feb/2021
如您所见,数据格式可以是dd/mm/yyyy、dd-mm-yyyy、dd-MMM-yyyy、dd/MMM/yyyy
我使用下面的代码来尝试将其转换为标准格式
df['Date'] = pd.to_datetime(df['Date'],format='mixed')
df['Date'] = pd.to_datetime(df['Date'],format = '%d-%m-%Y')
上面的代码适用于大多数情况,但在某些情况下,如01/12/2022,它将其转换为12-01-2022。所以基本上月变成日,日变成月。
我该如何解决这个问题。
3条答案
按热度按时间sf6xfgos1#
由于数据仍然有一个模式,并且日期总是第一个,因此可以将
dayfirst
参数设置为True
来解决这个问题。阅读更多here
注意:在旧版本的pandas中,
format='mixed'
将不起作用,您必须设置infer_datetime_format=True
。但此选项已弃用,因为V2.0.0
cbjzeqam2#
假设你的日期值在源代码中是infact字符串,那么我们可以使用strftime函数,如下所示:
这个问题在基于Excel的源代码中经常发生
owfi6suc3#
对于我的工作通过
dayfirst=True
与format='mixed'
到to_datetime
: