Python 在csv文件中处理不同格式的时间戳
我有一个csv文件,其中包含具有以下时间戳格式的数据:“%Y-%d-%m%H:%m:%S”。我已经创建了用python解析这些datetimes的代码:Python 在csv文件中处理不同格式的时间戳,python,pandas,csv,Python,Pandas,Csv,我有一个csv文件,其中包含具有以下时间戳格式的数据:“%Y-%d-%m%H:%m:%S”。我已经创建了用python解析这些datetimes的代码: mydateparser = lambda x: pd.datetime.strptime(x, "%Y-%d-%m %H:%M:%S") df = pd.read_csv(filename, parse_dates = [3], date_parser = mydateparser) 问题是,一天中每个数据点的格式都是“%Y-%d-%m”,
mydateparser = lambda x: pd.datetime.strptime(x, "%Y-%d-%m %H:%M:%S")
df = pd.read_csv(filename, parse_dates = [3], date_parser = mydateparser)
问题是,一天中每个数据点的格式都是“%Y-%d-%m”,因此不是“2018-01-07 00:00:00”,而是“2018-01-07”。这些数据点当然给了我这个错误:
ValueError:时间数据“2018-01-07”与格式“%Y-%d-%m%H:%m:%S”不匹配
我怎么能解决这个问题?我可以使用其他解析器吗?如果这些是唯一的变体,您可以定义一个解析器而不是使用lambda:
def my_date_parser(d):
try:
result = pd.datetime.strptime(d, "%Y-%d-%m %H:%M:%S")
except ValueError:
result = pd.datetime.strptime(d, "%Y-%d-%m")
return result
df = pd.read_csv(filename, parse_dates=[3], date_parser=my_date_parser)