Pandas 基于第二列的数据帧过滤
我有一个名为Pandas 基于第二列的数据帧过滤,pandas,filter,dataframe,Pandas,Filter,Dataframe,我有一个名为names的数据框架,如下所示: name status A X B Y C Z D X 我想获取名称列(例如,names['name']),但只获取状态为Y或Z的名称 因此,结果应该是: name status A X D X 如何执行此操作?用于生成布尔掩码,并使用~对其求反: In [230]: df[~df['status']
names
的数据框架,如下所示:
name status
A X
B Y
C Z
D X
我想获取名称列(例如,names['name']
),但只获取状态为Y或Z的名称
因此,结果应该是:
name status
A X
D X
如何执行此操作?用于生成布尔掩码,并使用~
对其求反:
In [230]:
df[~df['status'].isin(['Y','Z'])]
Out[230]:
name status
0 A X
3 D X
isin的结果
:
In [231]:
df['status'].isin(['Y','Z'])
Out[231]:
0 False
1 True
2 True
3 False
Name: status, dtype: bool
然后,您可以访问“名称”列,如下所示:
In [232]:
df.loc[~df['status'].isin(['Y','Z']),'name']
Out[232]:
0 A
3 D
Name: name, dtype: object
这也将有助于:
df.loc[(df['status']!='Y') & (df['status']!='Z')]
或者,如果您只想显示“名称”列中的数据:
df.loc[(df['status']!='Y') & (df['status']!='Z'), 'name']