我们的目标是使用apply
对array
的范围进行切片,并应用NumPy argmax
.
然而,编译器返回TypeError
TypeError: slice indices must be integers or None or have an __index__ method
对于以下代码
作为pd进口大Pandas
arr=np.array([10,2,5,3,6,8,3,3,2,5,6,8,11,14,11,100,1,3,20,21])
arr=arr.reshape((1,-1))
df=pd.DataFrame(zip([4,7],[15,18],[25,40]),columns=['lb','rb','mv'])
df['ss'] = df.apply(lambda x: np.argmax(arr[0][x['lb']:x['rb']] >= 0.3 * x['mv'] ), axis=1)
df['cc']=0.3 *df['mv']
df['es'] = df.apply(lambda x: np.argmax(arr[0][x['ss']:-1] < x['cc'] ), axis=1)
但是,如果我修改这两行
df['cc']=0.3 *df['mv']
df['es'] = df.apply(lambda x: np.argmax(arr[0][x['ss']:-1] < x['cc'] ), axis=1)
进入
df['es'] = df.apply(lambda x: np.argmax(arr[0][x['ss']:-1] < 0.3 *x['mv'] ), axis=1)
这个节目很有魅力.
我很好奇为什么会出现这个问题.