1.isin和~(取反)
返回值为布尔结果。
a=pd.DataFrame({'id':[1,2,3,4,5],
'A':[89,90,102,115,85],
'B':[90,95,70,131,107]})
a
![](https://img.haomeiwen.com/i14058594/0aaad2e3924e6915.png)
- column长度相同的列表
a.isin([1,90,131])
![](https://img.haomeiwen.com/i14058594/45b0b4a2804af60d.png)
- column长度不相同的列表
a.isin([1,90,131,107])
![](https://img.haomeiwen.com/i14058594/3e6ac8a40e39d392.png)
- dict列表
先匹配column,匹配成功再匹配值,如果成功,则返回True。
如果匹配column失败,则该列全部返回False。
a.isin({'id':[1,5],
'A':[115,85],
'B':[90,70,107]})
![](https://img.haomeiwen.com/i14058594/17ad59e940254a19.png)
a.isin({'A':[115,85],
'B':[90,70,107],
'D':[1,1,1]})
![](https://img.haomeiwen.com/i14058594/377d02ed10c3fa5c.png)
- DataFrame
列名匹配,对应位置的数值匹配(如果位置不对应出现相同数值也不会返回True)
b=pd.DataFrame({'id':[1,5,7],
'A':[115,85,92],
'B':[90,70,107]
})
a.isin(b)
![](https://img.haomeiwen.com/i14058594/f7708072a490be10.png)
*取反:
~a.isin(b)
![](https://img.haomeiwen.com/i14058594/dbec3ec4b8fd14ae.png)
2.in和not in
仅针对列表,是两个'互斥'的函数。
in:如果判断一个list是否在另一个list中,必须全部匹配才返回True,否则返回False。如果判断一个str或者int是否在另一个list中,匹配一次即可返回True。
a=pd.DataFrame({'id':[1,2,3,4,5],
'A':[89,90,102,115,85],
'B':[90,95,70,131,107]})
A_list=a.A.tolist()[1]
B_list=a.B.tolist()
print(A_list in B_list)
A_list=a.A.tolist()[0:2]
print(A_list in B_list)
![](https://img.haomeiwen.com/i14058594/85c0cb9a825f8747.png)
not in就是in取反了
![](https://img.haomeiwen.com/i14058594/f16c7b47a822b39d.png)
4.|和&
用于条件判断
|相当于数学中的'或',只要有一个条件成立即可
&相当于数学中的'且',必须两个或多个条件同时成立才可。
4.1 1&1
a=pd.DataFrame({'id':[1,2,3,4,5],
'A':[89,90,102,115,85],
'B':[90,95,70,131,107]})
if (1 in list(a.id))&(89 in list(a.A)):
print('True')
else:
print('Fasle')
![](https://img.haomeiwen.com/i14058594/851f5dff7bdc52dc.png)
4.2 1&0
a=pd.DataFrame({'id':[1,2,3,4,5],
'A':[89,90,102,115,85],
'B':[90,95,70,131,107]})
if (1 in list(a.id))&(89 not in list(a.A)):
print('True')
else:
print('Fasle')
![](https://img.haomeiwen.com/i14058594/e379aaa36b04492f.png)
4.3 1|0
a=pd.DataFrame({'id':[1,2,3,4,5],
'A':[89,90,102,115,85],
'B':[90,95,70,131,107]})
if (1 in list(a.id))|(89 not in list(a.A)):
print('True')
else:
print('Fasle')
![](https://img.haomeiwen.com/i14058594/4f507c97d1c9c76d.png)
4.4 0|0
a=pd.DataFrame({'id':[1,2,3,4,5],
'A':[89,90,102,115,85],
'B':[90,95,70,131,107]})
if (1 not in list(a.id))|(89 not in list(a.A)):
print('True')
else:
print('Fasle')
![](https://img.haomeiwen.com/i14058594/76940967afc4dd43.png)
5.between
series或DataFrame的值是否在两个数之间
a = pd.DataFrame(np.arange(24).reshape(6,4), columns=list('ABCD'))
print(a)
print('')
a_1 = a['A'].between(3,13) #A列在3-13之间的值,包含3和13两个端点
print(a_1)
![](https://img.haomeiwen.com/i14058594/ba5bda9587ff1020.png)
网友评论