如何将 int 数组转换回熊猫时间戳?

用户7468395

我能够将类型pandas timestampnumpy-array 的列转换为int 数组:

import numpy as np
import pandas as pd

df = pd.DataFrame({'a': [pd.datetime(2019, 1, 11, 5, 30, 1), pd.datetime(2019, 1, 11, 5, 30, 1), pd.datetime(2019, 1, 11, 5, 30, 1)], 'b': [np.nan, 5.1, 1.6]})

a = df.to_numpy()
a
# array([[Timestamp('2019-01-11 05:30:01'), nan],
#       [Timestamp('2019-01-11 05:30:01'), 5.1],
#       [Timestamp('2019-01-11 05:30:01'), 1.6]], dtype=object)
a[:,0] = a[:,0].astype('datetime64').astype(np.int64)
# array([[1547184601000000, nan],
#        [1547184601000000, 5.1],
#        [1547184601000000, 1.6]], dtype=object)

对于这个数组 a,我想将第 0 列转换回熊猫时间戳。由于数组非常大,而且我的整个过程非常耗时,我想避免使用 python 循环、applys、lambdas 或类似的东西。相反,我正在寻找速度优化的基于 numpy 的函数等。

我已经尝试过这样的事情:

a[:,0].astype('datetime64')

(结果:ValueError: Converting an integer to a NumPy datetime requires a specified unit

和:

import calendar
calendar.timegm(a[:,0].utctimetuple())

(结果:AttributeError: 'numpy.ndarray' object has no attribute 'utctimetuple'

如何将我的列转换a[:,0]

array([[Timestamp('2019-01-11 05:30:01'), nan],
      [Timestamp('2019-01-11 05:30:01'), 5.1],
      [Timestamp('2019-01-11 05:30:01'), 1.6]], dtype=object)

以速度优化的方式?

弗兰克·阿克

让我们回顾一下文档

datetime64 数据的不可变 ndarray,内部表示为 int64,可以装箱到 Timestamp 对象,这些对象是 datetime 的子类并携带元数据,例如频率信息。

所以,我们可以使用DatetimeIndex. 然后使用np.int64.

In [18]: b = a[:,0]                                                             

In [19]: index = pd.DatetimeIndex(b)

In [21]: index.astype(np.int64)                                                 
Out[21]: Int64Index([1547184601000000000, 1547184601000000000, 1547184601000000000], dtype='int64')

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将List <KeyValuePair <int,int >>转换为int [] []?

来自分类Dev

如何将interface {}转换为[] int?

来自分类Dev

如何将字节转换为int?

来自分类Dev

如何将InputStream转换为int

来自分类Dev

如何将char []转换为int?

来自分类Dev

如何将int转换为String?

来自分类Dev

如何将char转换为int?

来自分类Dev

如何将int转换为drawable?

来自分类Dev

如何将“ int”转换为“ objectParameter”?

来自分类Dev

如何将nvarchar转换为int

来自分类Dev

如何将键值转换为int?

来自分类Dev

如何将int转换为id?

来自分类Dev

如何将IntPtr转换为int

来自分类Dev

如何将str转换为int?

来自分类Dev

如何将字节转换为int?

来自分类Dev

如何将TextView转换为int?

来自分类Dev

如何将int转换为String?

来自分类Dev

如何将char转换为int?

来自分类Dev

如何将int转换为DateTime

来自分类Dev

如何将int转换为字节?

来自分类Dev

如何将BufferedImage转换为int []?

来自分类Dev

如何将 Sysdate 转换为 Int?

来自分类Dev

如何将str转换为int

来自分类Dev

熊猫:如何将int64 epoc秒的索引转换为日期时间

来自分类Dev

熊猫:如何将int64年的索引转换为日期时间

来自分类Dev

熊猫:如何将int64 epoc秒的索引转换为日期时间

来自分类Dev

Android:如何将位图数组转换为Int数组?

来自分类Dev

如何将整数时间戳转换回UTC日期时间?

来自分类Dev

如何将python给您的时间转换为int