这个错误是因为你试图使用 and 运算符来对 Pandas Series 进行逻辑运算。在 Python 中,and 运算符期望它的操作数是单个的布尔值,但在这里 ser > 0ser < 2 都是 Pandas Series,所以会引发错误。

你应该使用 & 运算符来替代 and,并且需要添加括号来确保运算的优先级。下面是修改后的代码:

df.loc[(ser > 0) & (ser < 2)]

这段代码会选择 ser 中大于 0 且小于 2 的所有行。希望这个答案对你有所帮助!

df = pd.DataFrame([[1, 2], [3]])
ser = df.isnull().sum(axis=1)
df.loc[(ser > 0) & (ser < 2)]
# df.loc[(ser > 0) and (ser < 2)]