Я пытаюсь прочитать в pandas dataframe файл csv с двумя столбцами, содержащими даты:
customer_id,name,surname,date_from,date_to
1,John,Smith,2010-01-04,2018-09-06
2,Jake,Sarti,2011-09-02,2017-11-03
3,Jim,Sayer,2012-06-12,9999-12-31
4,James,Scheer,2011-09-02,9999-12-31
Хотя date_from - это столбец datetime64 [ns], как и ожидалось, проблема в date_to, похоже, заключается в том, чтодаты «конца света».
Это, очевидно, является следствием наносекундной гранулярности datetime64.
Я думал об использовании параметра конвертеров, но я не уверен, будет ли он эффективнымway.
Проблема с read_csv также возникает с read_sql при чтении столбцов даты, содержащих высокие даты.
Я уже пробовал na_values = ['9999-12-31']
, что работает, но я был бы вынужден изменить способ, которым мывыберите действительные записи в нашей среде базы данных и вычислите поля, указывающие на недопустимые записи.
import pandas as pd
cust = pd.read_csv('customers.csv', parse_dates=['date_from', 'date_to'])
cust.dtypes
[Out]
customer_id int64
name object
surname object
date_from datetime64[ns]
date_to object
dtype: object
Можно ли снизить гранулярность типа datetime до дней, часов, .., секунд, чтобы чтение csv и баз данныхне требует манипулирования данными в столбце datetime?