为什么我在比较两个熊猫日期时间指数时看到"ufunc 'subtract' cannot use operands with types dtype('<M8[ns]') and dty



我有两个panda数据帧,都有日期时间索引;样本输出:

l1_with_nonlimiting_trace_gas_df.index:

DatetimeIndex(['2018-03-25 11:13:41+00:00', '2018-03-25 11:17:40+00:00',
'2018-03-25 11:21:38+00:00', '2018-03-25 11:25:23+00:00',
'2018-03-25 11:29:03+00:00', '2018-03-25 11:34:06+00:00',
'2018-03-25 11:37:47+00:00', '2018-03-25 11:48:48+00:00',
'2018-03-25 11:59:23+00:00', '2018-03-25 12:08:32+00:00',
...
'2018-03-25 22:31:00+00:00', '2018-03-25 22:45:34+00:00',
'2018-03-25 22:55:34+00:00', '2018-03-25 23:04:55+00:00',
'2018-03-25 23:12:44+00:00', '2018-03-25 23:16:38+00:00',
'2018-03-25 23:20:38+00:00', '2018-03-25 23:24:33+00:00',
'2018-03-25 23:28:32+00:00', '2018-03-25 23:33:36+00:00'],
dtype='datetime64[ns, UTC]', length=124, freq=None)

l1_with_limiting_trace_gas_df.index:

DatetimeIndex(['2018-03-25 11:11:38+00:00', '2018-03-25 11:15:39+00:00',
'2018-03-25 11:19:38+00:00', '2018-03-25 11:23:27+00:00',
'2018-03-25 11:27:11+00:00', '2018-03-25 11:32:21+00:00',
'2018-03-25 11:35:55+00:00', '2018-03-25 11:40:09+00:00',
'2018-03-25 11:49:39+00:00', '2018-03-25 12:00:05+00:00',
...
'2018-03-25 22:46:17+00:00', '2018-03-25 22:56:26+00:00',
'2018-03-25 23:05:53+00:00', '2018-03-25 23:10:49+00:00',
'2018-03-25 23:14:42+00:00', '2018-03-25 23:18:42+00:00',
'2018-03-25 23:22:36+00:00', '2018-03-25 23:26:31+00:00',
'2018-03-25 23:31:33+00:00', '2018-03-25 23:35:34+00:00'],
dtype='datetime64[ns, UTC]', length=130, freq=None)

当我执行get_loc操作时:

index_location=l1_with_nonlimiting_trace_gas_df.index.get_loc(l1_with_limiting_trace_gas_df.index[i],method='nearest')

我得到ufunc错误:UFuncTypeError:ufunc"减法"不能使用类型为dtype("<M8[ns]"(和dttype("O"(的操作数

这在过去曾经是有效的。现在它已经不起作用了。以下是我的版本:

pd版本输出[152]:'1.0.1'

np版本输出[154]:'1.18.1'

如果您能在这里提供帮助,我们将不胜感激。

看看datetimeindex失败的Pandas get_loc

报告了同样的问题,最后一条评论包含了解释这个问题发生在Pandas版本1.0.1中(只是您的版本(。

我有1.0.3版本,例如以下代码有效:

start = pd.Timestamp('2019-12-12 00:00')
end   = pd.Timestamp('2019-12-12 00:03')
testindex = pd.date_range(start, end, freq='10s')
findtime = pd.Timestamp('2019-12-12 0:01:16')
testindex.get_loc(findtime, method='nearest')

我得到了结果8

因此,升级您的熊猫

相关内容

  • 没有找到相关文章

最新更新