ValueError while using Pandas Rumrame.iloc with complex lambda expression(在复杂的lambda表达式中使用Pandas Rumrame.iloc时发生值错误)

jecbmhm3  于 2023-11-15  发布在  其他
关注(0)|答案(2)|浏览(94)

我正在尝试使用lambda对Pandas Dataframe 进行切片,如下所示:

print(df.iloc[lambda x: (M < x.index < M + 5) | (x.index % N == 0), :])

字符串
M和N是任意整数变量。然而,我得到了一个错误,似乎与lambda表达式有关。将表达式简化为一个比较没有任何问题。
错误描述:

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()


我该如何解决此问题?

6fe3ivhb

6fe3ivhb1#

Pandas索引不支持a < x.index < b

df.loc[((M < df.index) & (df.index < M+5)) | (df.index % N == 0)]

字符串

luaexgnf

luaexgnf2#

M=5
N=2
print(df.iloc[[i for i in df.index if ((M < i < M + 5) or (i % N == 0))],:])

字符串

相关问题