在csv文件中处理格式不同的时间戳

问题描述 投票:0回答:1

我有一个csv文件,其中包含具有以下时间戳格式的数据:“%Y-%d-%m%H:%M:%S”。我创建了代码以在python中用熊猫解析这些日期时间:

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']不匹配

我该如何解决?我可以使用其他解析器吗?

python pandas csv
1个回答
0
投票

如果仅这些变量,则可以定义一个解析器,而不使用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)
© www.soinside.com 2019 - 2024. All rights reserved.