python jit 不识别datetime_Python numpy:无法将datetime64 [ns]转换为datetime64 [D](与Numba一起使用)...

当使用Numba和Pandas处理datetime时,遇到Numba不识别datetime64[D]类型的问题。解决方案是先将Series转换为NumPy数组,再进行astype转换。Numba可能实际遇到的是Timestamps而非datetime64[ns]的问题。可以尝试将astype转换后的NumPy数组传递给Numba函数。
摘要由CSDN通过智能技术生成

Series.astype将所有类似日期的对象转换为datetime64 [ns].

要转换为datetime64 [D],请在调用astype之前使用值来获取NumPy数组:

dates_input = df["month_15"].values.astype('datetime64[D]')

请注意,NDFrame(例如Series和DataFrames)只能将类似日期时间的对象保存为dtype datetime64 [ns]的对象.将所有日期时间自动转换为常见的dtype简化了后续日期计算.但它使得无法在DataFrame列中存储datetime64 [s]对象. Pandas核心开发人员,Jeff Reback explains,

“We don’t allow direct conversions because its simply too complicated to keep anything other than datetime64[ns] internally (nor necessary at all).”

另请注意,即使df [‘month_15’].astype(‘datetime64 [D]’)有dtype datetime64 [ns]:

In [29]: df['month_15'].astype('datetime64[D]').dtype

Out[29]: dtype('

当你遍历系列中的项目时,你会得到pandas时间戳,而不是datetime64 [ns].

In [28]: df['month_15'].astype('datetime64[D]').tolist()

Out[28]: [Timestamp('2010-01-15 00:00:00'), Timestamp('2011-01-15 00:00:00&

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值