熊猫'9999-12-31'日期时间表示

时间:2019-07-06 17:54:38

标签: python pandas datetime

我正在尝试将包含日期的两列的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列中的数据进行操作?

0 个答案:

没有答案