TypeError: searchsorted 需要兼容的数据类型或标量

我无法在不收到错误的情况下对日期时间索引应用 searchsorted:


df.index.searchsorted(pd.Series(np.array([df.index[0], df.index.max()])))


>>>TypeError: searchsorted requires compatible dtype or scalar, not ndarray

样本数据:


x = ['1998-01-07 13:17:00', '1998-01-07 13:18:00', '1998-01-07 13:19:00', '1998-01-07 13:20:00',

     '1998-01-07 13:21:00', '1998-01-07 13:22:00', '1998-01-07 13:23:00', '1998-01-07 13:24:00',

     '1998-01-07 13:25:00', '1998-01-07 13:26:00']

df = pd.DataFrame(x)

df.set_index(df.iloc[:, 0], inplace=True)

df.index = pd.DatetimeIndex(df.index.values)



df.index.searchsorted(pd.Series(np.array([df.index[0], df.index.max()])))

为什么它不起作用?(听说这是一个已修复的错误,但不知何故它仍然存在)


我怎样才能让它发挥作用?


我需要在多处理函数中应用这一行,它需要高效。


慕标5832272
浏览 81回答 1
1回答

回首忆惘然

如错误所述,您将 a 传递给与ndarray数据类型为 的 Seriespandas.Series.searchsorted()不兼容的。因此,要解决此问题,您需要像这样调整给定系列的类型:df.indexpandas.DatetimeIndex# just change this lineprint(df.index.searchsorted(pd.DatetimeIndex([df.index[0], df.index.max()])))# prints: [0, 9]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python