Skip to main content
 首页 » 编程设计

python之仅在 df pandas 中显示特定组

2025年05月04日19kevingrace

你好,我需要关注表格中的特定组。

举个例子:

groups col1  
A 3 
A 4 
A 2 
A 1 
B 3 
B 3 
B 4 
C 2 
D 4 
D 3 

我只想显示包含 3 和 4 但没有其他数字的组。 在这里我应该得到:

groups col1  
B 3 
B 3 
B 4 
D 4 
D 3 

请您参考如下方法:

这里有两种可能的方法 - 通过 Series.isin 测试值获取成员资格,然后通过 GroupBy.transform 获得所有 True 的所有组和 GroupBy.all , 最后过滤 boolean indexing :

df1 = df[df['col1'].isin([3,4]).groupby(df['groups']).transform('all')] 
print (df1) 
  groups  col1 
4      B     3 
5      B     3 
6      B     4 
8      D     4 
9      D     3 

另一种方法是首先获取所有组值,其中 NOT 包含值 3,4 并传递给另一个带有反向掩码的 isin 函数:

df1 = df[~df['groups'].isin(df.loc[~df['col1'].isin([3,4]), 'groups'])] 
print (df1) 
  groups  col1 
4      B     3 
5      B     3 
6      B     4 
8      D     4 
9      D     3