你好,我需要关注表格中的特定组。
举个例子:
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
