我有一个数据框,我想将其转换为numpy记录数组。 df.to_records()
工作正常,但我有一个日期时间值的列。由于df.to_records()
我得到了:
[(1275264000000000000L, 9912.0, 58450.0, 1036, 136.0, 15.0)
(1275264000000000000L, 9912.0, 155471.0, 1033, 1033.0, 15.0)
(1275264000000000000L, 9912.0, 166784.0, 1011, 111.0, 2.0)
(1275264000000000000L, 9912.0, 166798.0, 10106, 1111.0, 12.0)]
每个元组中的第一个值应该是日期,但它们是其他的。他们的日期类型是'<M8[ns]'
(我不知道这意味着什么)。
有谁知道如何获得包含日期的记录数组?
答案 0 :(得分:3)
这仅仅是一种表现形式:
>>> df
0 1
0 2010-05-31 00:00:00 9912
1 2010-05-31 00:00:00 9912
>>> df.to_records()
rec.array([(0L, 1275264000000000000L, 9912.0),
(1L, 1275264000000000000L, 9912.0)],
dtype=[('index', '<i8'), ('0', '<M8[ns]'), ('1', '<f8')])
但是
>>> df.to_records()[0][1]
numpy.datetime64('2010-05-31T04:00:00.000000000+0400')
类型<M8[ns]
是numpy的datetime类型之一,ns代表自纪元以来以纳秒为单位存储数据。
>>> np.datetime64().dtype
dtype('<M8')