parse_dates не работает при чтении csv с использованием pandas.read_csv

#python #pandas

Вопрос:

Следующий код работает нормально, если я указываю даты с числом меньше 2150 года.

Формат даты = ГГГГ-ММ-ДД Входные данные: «2021-07-26″,»2500-04-30″,»2019-04-30»

 df = pd.read_csv('files/Test_Excep.csv',
                 delimiter=",", 
                 parse_dates= ['col1_date','col2_date','col3_dt'],
                 infer_datetime_format=True)

df.dtypes
col1_date                          datetime64[ns]
col2_date                                 object
col3_dt                            datetime64[ns]
 

col2_date отображается как объект, а не как дата-время. Он отображается как дата, если я использую дату, которая меньше 2150 года, означает любую дату меньше 2150 года.

Пожалуйста, дайте мне знать, есть ли какой-либо обходной путь для этого.

Комментарии:

1. забавная вещь: если я использую простой datetime синтаксический анализатор, pandas добавляет time только on col2_date , поэтому данные перепроверяются и dateutil не виноваты

2. Я не понял, что вы говорите. Пожалуйста, дайте мне знать, каково решение для обработки col2_date как datetime

3. из datetime импортируйте datetime custom_date_parser = lambda x: datetime.strptime(x, «%Y-%d-%m») date_parser=custom_date_parser — я все еще вижу col2_date как объект, если я использую этот параметр в read_csv

4. Ограничения временных меток «Поскольку pandas представляет временные метки с разрешением в наносекунду, временной интервал, который может быть представлен с использованием 64-разрядного целого числа, ограничен приблизительно 584 годами: 1677-09-21 00:12:43.145224193 — 2262-04-11 23:47:16.854775807» Существуют некоторые рекомендации по представлению диапазонов, выходящих за пределы

5. @mssr: да, именно поэтому мой комментарий начинается с «забавная вещь», а не «это ваше решение». dateutil используется ли библиотека для определения форматов дат, и если мы отключаем ее с помощью пользовательского анализатора дат, проблема все еще существует: данные каким-то образом анализируются снова. и, как выяснил Анри-экер, это была скорее проблема с хранилищем, чем с синтаксическим анализом, но информация, которую мы получили с помощью этого теста, по-прежнему верна (и забавна)