将csv文件中的第一天和第一个月的日期设为第一天

时间:2019-06-11 20:37:49

标签: python regex csv data-science

我有一个csv文件,其中包含一列日期。日期按月顺序排列-因此,首先是1月,然后是2月,依此类推。问题在于某些日期采用mm / dd / yyyy格式,而其他日期则采用dd / mm / yyyy格式。这就是它的样子。

日期

01/08/2005
01/12/2005
15/01/2005
19/01/2005
22/01/2005
26/01/2005
29/01/2005
03/02/2005
05/02/2005

...

我想将它们全部采用相同的格式(dd / mm / yyyy)

我正在使用Python和熊猫读取和编辑csv文件。我尝试使用Excel使用内置的格式设置工具手动更改日期格式,但是对于大量行来说似乎是不可能的。我正在考虑使用正则表达式,但是我不太确定如何区分月优先和天优先。

# here's what i have so far
date = df.loc[i, 'Date']

pattern = r'\d\d/\d\d/\d\d'        
match = re.search(pattern, date)  

if match:
    date_items = date.split('/')
    day = date_items[1]
    month = date_items[0]
    year = date_items[2]
    new_date = f'{dd}/{mm}/{year}'
    df.loc[i, 'Date'] = new_date

我希望csv最后具有统一的日期格式。

1 个答案:

答案 0 :(得分:1)

简而言之:你不能!

您无法知道2019年1月2日是1月2日还是2月1日! 您的示例中的其他日期也是如此:

01/08/2005
01/12/2005
03/02/2005
05/02/2005