Python 在CSV文件中使用多种格式转换日期
我有一个包含一些标题的CSV推文。其中,由于未知原因,日期格式从%Y-%m-%d中途更改为%d/%m/%Y,如下图所示。 这使得在尝试将其导出到另一个程序(如Matlab)时变得困难。我正试图用Python解决这个问题,但任何其他解决方案都会很好 我尝试了多种解决方案,只是在谷歌上四处搜索。主要在读取CSV、DateTime.strTime和其他文件时以日期格式进行解析。我对Python非常陌生,所以如果我有点不知所措,我很抱歉 我希望对所有日期进行标准化,例如,将%d/%m/%Y更改为其他格式,同时保持单独的行Python 在CSV文件中使用多种格式转换日期,python,pandas,csv,date-conversion,Python,Pandas,Csv,Date Conversion,我有一个包含一些标题的CSV推文。其中,由于未知原因,日期格式从%Y-%m-%d中途更改为%d/%m/%Y,如下图所示。 这使得在尝试将其导出到另一个程序(如Matlab)时变得困难。我正试图用Python解决这个问题,但任何其他解决方案都会很好 我尝试了多种解决方案,只是在谷歌上四处搜索。主要在读取CSV、DateTime.strTime和其他文件时以日期格式进行解析。我对Python非常陌生,所以如果我有点不知所措,我很抱歉 我希望对所有日期进行标准化,例如,将%d/%m/%Y更改为其他格式
我正在考虑采用所持有的方法,但如果它识别某种格式,则添加一个if语句。我该如何将日期分解并更改它呢?这可能行得通,但我懒得对照CSV文件的图像检查它
import pandas as pd
# Put all the formats into a list
possible_formats = ['%Y-%m-%d', '%d/%m/%Y']
# Read in the data
data = pd.read_csv("data_file.csv")
date_column = "date"
# Parse the dates in each format and stash them in a list
fixed_dates = [pd.to_datetime(data[date_column], errors='coerce', format=fmt) for fmt in possible_formats]
# Anything we could parse goes back into the CSV
data[date_column] = pd.NaT
for fixed in fixed_dates:
data.loc[~pd.isnull(fixed), date_column] = fixed[~pd.isnull(fixed)]
data.to_csv("new_file.csv")
对这似乎奏效了。非常感谢,你是个救命恩人。