Numpy 熊猫不在,在和之间

Numpy 熊猫不在,在和之间,numpy,pandas,Numpy,Pandas,pd.版本 “0.14.0” 我需要为数据帧中的列执行not in语句 对于isin语句,我使用以下方法筛选我需要的代码: h1 = df1[df1['nat_actn_2_3'].isin(['100','101','102','103','104'])] 我想对另一列执行notin或not equal to(不确定哪一个用于python)语句 因此,我尝试了以下方法: h1 = df1[df1['csc_auth_12'].notin(['N6M','YEM','YEL','YEM'])]

pd.版本 “0.14.0”

我需要为数据帧中的列执行not in语句

对于isin语句,我使用以下方法筛选我需要的代码:

h1 = df1[df1['nat_actn_2_3'].isin(['100','101','102','103','104'])]
我想对另一列执行notin或not equal to(不确定哪一个用于python)语句

因此,我尝试了以下方法:

h1 = df1[df1['csc_auth_12'].notin(['N6M','YEM','YEL','YEM'])]

h1 = df1[df1['csc_auth_12'] not in (['N6M','YEM','YEL','YEM'])]
以及:

我真的想从数据集中过滤掉N6M,YEM,YEL和YEM

我还对如何做中间语句感兴趣

因此,对于以下内容,我必须手动输入所有500个代码。我想做一些类似的事情:

h1 = df1[df1['nat_actn_2_3'].isin['100','102'] and isbetween [500 & 599])]
但这就是我所拥有的:

h1 = df1[df1['nat_actn_2_3'].isin(['100','101','102','103','104','107','108','112','115','117','120','122','124','128',
                             '130','132','132','140','141','142','143','145','146','147','148','149','170','171',
                             '172','173','179','190','198','199','501','502','503','504','505','506','507','508',
                             '509','510','511','512','513','514','515','516','517','518','519','520','521','522',
                             '523','524','525','526','527','528','529','530','531','532','533','534','535','536',
                             '537','538','539','540','541','542','543','544','545','546','547','548','549','550',
                             '551','552','553','554','555','556','557','558','559','560','561','562','563','564',
                             '565','566','567','568','569','570','571','572','573','574','575','576','577','578',
                             '579','580','581','582','583','584','585','586','587','588','589','590','591','592',
                             '593','594','595','596','597','598','599','702','721','740','953','955'])]
有什么建议吗


谢谢。

使用
~
反转遮罩来否定布尔条件:

h1 = df1[~df1['nat_actn_2_3'].isin(['100','101','102','103','104'])]
不在
不在
中,前者不存在,后者可能会引发
值错误
或模糊值错误,因为您试图在中对数组使用
,而pandas不能这样工作

对于第二个问题,您需要将布尔条件复合如下:

h1 = df1[(df1['nat_actn_2_3'].isin['100','102']) | ((df1['nat_acctn_2_3'] > 500) & (df1['nat_actn_2_3'] < 599))]
h1=df1[(df1['nat_actin_2_3'].isin['100','102'])(df1['nat_acctn_2_3']>500)和(df1['nat_actin_2_3']<599))]

因此,我假设从您的文本中,您想要的行要么等于100/102,要么介于500和599之间(不清楚是否包含这些值,但您可以更改为
=
谢谢EdChum!完美!
h1 = df1[(df1['nat_actn_2_3'].isin['100','102']) | ((df1['nat_acctn_2_3'] > 500) & (df1['nat_actn_2_3'] < 599))]