pandas.series进行布尔运算经常见,但是经常忘记掉怎么进行计算,因此下定决心整理一下,防止再忘记。
错误示范
s = pd.Series([1,2,3])
s>1 and s<2
此时为报错:
The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
修改方法
- 加括号且运算符修改为&、|
s = pd.Series([1,2,3])
(s>1) & (s<2)
注意必须要有括号,否则也会报错!
- 转为numpy运算,代码如下:
import numpy as np
import pandas as pd
s = pd.Series([1,2,3])
np.logical_and(s<1, s>1)
不过显然,转为numpy还是比较麻烦的,推荐第一种方法。
网友评论