转换 CSV 文件中多种格式的日期

Converting dates with multiple formats in a CSV file

我有一个 CSV 文件,其中包含一些 headers 的推文。其中,由于某些未知原因,日期格式从 %Y-%m-%d 中途更改为 %d/%m/%Y 如下图所示。 这使得在尝试将其导出到另一个程序时变得困难,例如Matlab。我试图在 Python 中解决这个问题,但任何其他解决方案都很好。

我只是通过谷歌搜索尝试了多种解决方案。主要是在读取CSV时解析成日期格式,DateTime.strptime等。我是 Python 的新手,所以如果我有点无能,我很抱歉

我希望标准化所有日期,例如将 %d/%m/%Y 更改为其他格式,同时将其单独的行分开。

我正在考虑遵循 here 提出的方法,但如果它识别某种格式,则添加一个 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")