首页 > 解决方案 > 仅显示 df pandas 中的特定组

问题描述

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

这是一个例子:

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

标签: pythonpandas

解决方案


这里有两种可能的方法 - 通过成员资格测试值,然后通过和Series.isin获取所有组,最后过滤:TrueGroupBy.transformGroupBy.allboolean 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

推荐阅读