1.where
df.where(df['Gender']=='M')
#不满足条件的行全部被设置为NaN
通过这种方法筛选结果和[]操作符的结果完全一致:
df.where(df['Gender']=='M').dropna()
#.dropna()丢掉含nan的行
第一个参数为布尔条件,第二个参数为填充值:
df.where(df['Gender']=='M',np.random.rand(df.shape[0],df.shape[1])).head()
#np.random.rand可以返回指定大小的随机矩阵
2.mask函数
mask函数与where功能上相反,其余完全一致,即对条件为True的单元进行填充
3.query函数
query函数中的布尔表达式中,下面的符号都是合法的:行列索引名、字符串、and/not/or/&/|/~/not in/in/==/!=、四则运算符
df.query('(Address in ["street_6","street_7"])&(Weight>(70+10))&(ID in [1303,2304,2402])')