数据蛙数据分析每周作业

逻辑筛选的总结isin,in和not in,~,&和|,betw

2020-10-12  本文已影响0人  我住永安当

1.isin和~(取反)

返回值为布尔结果。

a=pd.DataFrame({'id':[1,2,3,4,5],
             'A':[89,90,102,115,85],
             'B':[90,95,70,131,107]})
a
image.png
a.isin([1,90,131])
image.png
a.isin([1,90,131,107])
image.png
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
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

仅针对列表,是两个'互斥'的函数。
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.|和&

用于条件判断
|相当于数学中的'或',只要有一个条件成立即可
&相当于数学中的'且',必须两个或多个条件同时成立才可。

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的值是否在两个数之间

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)
image.png
上一篇 下一篇

猜你喜欢

热点阅读