gpt4 book ai didi

python - Numpy isnat() 在日期时间对象上返回值错误

转载 作者:太空狗 更新时间:2023-10-29 21:45:09 25 4
gpt4 key购买 nike

一直在研究 Converting between datetime, Timestamp and datetime64 中列出的选项;但是,numpy 的 isnat() 似乎无法识别日期时间对象,或者我缺少函数输入所需的其他类型的日期时间对象。

这是数据框的概述:

>>> time_data.head()
Date Name In AM Out AM \
0 2017-12-04 AUSTIN LEWIS 1900-01-01 07:03:11 1900-01-01 12:01:50
1 2017-12-05 AUSTIN LEWIS 1900-01-01 05:24:07 1900-01-01 12:08:21
2 2017-12-06 AUSTIN LEWIS 1900-01-01 11:58:32 NaT
3 2017-12-07 AUSTIN LEWIS 1900-01-01 08:31:23 1900-01-01 12:49:51
4 2017-12-11 AUSTIN LEWIS 1900-01-01 06:55:21 1900-01-01 12:02:08

In PM Out PM Sick Time
0 1900-01-01 12:28:52 1900-01-01 17:34:53 NaT
1 1900-01-01 12:35:12 1900-01-01 16:15:17 NaT
2 NaT 1900-01-01 23:59:01 NaT
3 1900-01-01 13:18:34 1900-01-01 18:10:35 NaT
4 1900-01-01 12:30:49 1900-01-01 17:39:54 NaT

>>> time_data.dtypes
Date object
Name object
In AM datetime64[ns]
Out AM datetime64[ns]
In PM datetime64[ns]
Out PM datetime64[ns]
Sick Time datetime64[ns]
dtype: object

>>> type(time_data['In AM'][3])
<class 'pandas._libs.tslib.Timestamp'>

>>> type(time_data['In AM'][3].to_datetime())
<type 'datetime.datetime'>

if np.isnat(time_data['Out AM'][row].to_datetime()) & np.isnat(time_data['In PM'][row].to_datetime()):

抛出“ValueError: ufunc 'isnat' is only defined for datetime and timedelta”

我在这里错过了什么?!

最佳答案

呃,这是一个非常糟糕的错误信息! np.isnat(“不是时间”)仅适用于 numpy 的 日期时间。 ufunc 的典型用途是使用 np.datetime64np.timedelta64 dtype 数组:

>>> dt = datetime.now()
>>> np.isnat(np.array([dt], dtype=np.datetime64))
array([False])
>>> np.isnat(np.array([dt], dtype=object))
TypeError: ufunc 'isnat' is only defined for datetime and timedelta.

引用docs对于支持的输入类型。

关于python - Numpy isnat() 在日期时间对象上返回值错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48194470/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com