Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在CSV文件中使用多种格式转换日期_Python_Pandas_Csv_Date Conversion - Fatal编程技术网

Python 在CSV文件中使用多种格式转换日期

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更改为其他格式

我有一个包含一些标题的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")

对这似乎奏效了。非常感谢,你是个救命恩人。