1.isin和~(取反)
返回值為布爾結(jié)果。
a=pd.DataFrame({'id':[1,2,3,4,5],
'A':[89,90,102,115,85],
'B':[90,95,70,131,107]})
a
image.png
- column長度相同的列表
a.isin([1,90,131])
image.png
- column長度不相同的列表
a.isin([1,90,131,107])
image.png
- dict列表
先匹配column艰管,匹配成功再匹配值滓侍,如果成功,則返回True牲芋。
如果匹配column失敗撩笆,則該列全部返回False。
a.isin({'id':[1,5],
'A':[115,85],
'B':[90,70,107]})
image.png
a.isin({'A':[115,85],
'B':[90,70,107],
'D':[1,1,1]})
image.png
- DataFrame
列名匹配缸浦,對應(yīng)位置的數(shù)值匹配(如果位置不對應(yīng)出現(xiàn)相同數(shù)值也不會返回True)
b=pd.DataFrame({'id':[1,5,7],
'A':[115,85,92],
'B':[90,70,107]
})
a.isin(b)
image.png
*取反:
~a.isin(b)
image.png
2.in和not in
僅針對列表夕冲,是兩個'互斥'的函數(shù)。
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)
image.png
not in就是in取反了
image.png
4.|和&
用于條件判斷
|相當(dāng)于數(shù)學(xué)中的'或',只要有一個條件成立即可
&相當(dāng)于數(shù)學(xué)中的'且'篙悯,必須兩個或多個條件同時成立才可蚁阳。
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')
image.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')
image.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')
image.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')
image.png
5.between
series或DataFrame的值是否在兩個數(shù)之間
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兩個端點(diǎn)
print(a_1)
image.png