为什么没有Seri​​es.dtype返回一种日期时间

时间:2016-07-14 01:14:52

标签: python numpy pandas

enter image description here

我有一个变量tradeDate。它的类型值是datetime。但是,当我运行tradeDate.dtype时,它给出了Out [12]:dtype(' O'),为什么不是datetime。或者我怎么知道它的类型是否为datetime

我将展示如何获得tradeDate数据

[enter image description here

有一个excel文件,我将其读取如下

df_tradeDate = pandas.read_excel('E:/dataCenter/TradeDates.xlsx')

然后,我将数据转换为datetime,如下所示

df_tradeDate['date']=pandas.to_datetime(df_tradeDate['date'],format='%Y%m%d',errors='coerce')

最后。我得到了tradeDate

tradeDate=df_tradeDate['date'].dt.date

enter image description here

1 个答案:

答案 0 :(得分:1)

Pandas使用名为datetime64的numpy日期时间dtypes,它与python的标准库模块datetime中的日期时间类型不同。

当您访问df_tradeDate['date'].dt.date时,pandas会返回一个datetime.date对象,这是pandas world中的通用对象。因此,您会看到dtype的区别。

请注意,虽然numpy具有datetime64[D]等单位来表示日期,但pandas会将所有这些单位转换为纳秒。因此,pandas中唯一可行的日期时间dtype是datetime64[ns]。这实际上并没有导致任何问题。