Python “我为什么要看?”;ufunc&x27;减去';不能使用类型为dtype(';<;M8[ns]';)和dtype(';O';)的操作数;当比较两个时间指数时?

Python “我为什么要看?”;ufunc&x27;减去';不能使用类型为dtype(';<;M8[ns]';)和dtype(';O';)的操作数;当比较两个时间指数时?,python,pandas,numpy,datetime,Python,Pandas,Numpy,Datetime,我有两个数据帧,都带有日期时间索引;样本输出: 具有非限制性跟踪气体测向指数的l1测向指数: 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 1

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

具有非限制性跟踪气体测向指数的l1测向指数:

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)
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)
l1\u带\u限制\u跟踪\u气体\u测向指数:

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)
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“subtract”不能将操作数与类型dtype一起使用(“请查看

同样的问题也被报道过,最后的评论包含了解释 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


所以升级你的熊猫。

我会尝试把熊猫更新到1.1.1可悲的是我的蟒蛇大熊猫是最新的,因为它将允许。你可以考虑安装目前的蟒蛇蟒蛇3.8。错误告诉你一个参数(列)是对象数据类型,而不是
datetime64
。完整的回溯可能会有所帮助,因为您实际上并没有采取任何不同。但是
get\u loc
使用
最近的
方法可能会这样做。谢谢Trenton,这就成功了。这是清理一个闲置了几个月的项目的灰尘的陷阱之一——这么多新错误新版本。