我正在尝试将包含日期的两列的csv文件读入pandas数据帧:
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的纳秒粒度的结果。
我考虑过使用converters参数,但是我不确定这是否是一种有效的方法。
在读取包含高日期的日期列时,read_sql也会发生read_csv问题。
我已经尝试过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列中的数据进行操作?