Проблема синтаксического анализа даты и времени привела к этой ошибке: {ValueError: недопустимый литерал для int () с основанием 10: '`'} - PullRequest
0 голосов
/ 23 февраля 2020

Я пытался прочитать даты из csv с Pandas. Узнайте, что чтение его как объекта datetime будет намного быстрее, чем чтение в виде строки

Это мой код

 parse_dates = ['Reqmt Date']
 dateparse = lambda dates: [pd.datetime.strptime(d, '%d.%m.%Y') for d in dates]
 inputWS =  pd.read_csv(file, sep=',', header=0, usecols=headers, dtype=dtypes,
                             parse_dates=parse_dates, date_parser= dateparse)

К сожалению, интерпретатор выдает мне ошибку:

ValueError: недопустимый литерал для int () с основанием 10: '`'

Я провел некоторое исследование и обнаружил, что ошибка связана с тем, что моя дата-время имеет формат % дд.% мм.% гг, например, 26.02.2016. Я полагал, что отформатировал их таким же образом, как я должен был отформатировать их, ie, используя другой date_parser, pd.datetime.strptime (), прежде чем я прочитал _csv

Мне просто интересно, где я мог ошибиться. Или мне нужно читать как строковый объект, а затем отдельно конвертировать их?

Спасибо за чтение

1 Ответ

0 голосов
/ 23 февраля 2020

Документация говорит, что этот метод использует dateutil.parser.parser в качестве парсера даты по умолчанию, что означает, что у вас мало шансов улучшить синтаксический анализ:)

Поэтому первая рекомендация - запускать код с date_parser=None чтобы увидеть, работает ли он по умолчанию

Если это не так, попробуйте отладить его, сделайте функцию

import dateutil.parser
def parser(dates):
    ret=[]
    for date in dates:
        try:
            ret.append(dateutil.parser.parse(date))
        except Exception as ex:
            print("Failed to parse date '{}': {}".format(date,ex))
    return ret

Затем запустите код, используя date_parser=parser Таким образом, вы точно будете знать, какая дата не удалась быть разобранным

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...