这个错误是因为你试图使用 and
运算符来对 Pandas Series 进行逻辑运算。在 Python 中,and
运算符期望它的操作数是单个的布尔值,但在这里 ser > 0
和 ser < 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)]