Python 组2列,并基于组值取基于特定值的组

Python 组2列,并基于组值取基于特定值的组,python,pandas,Python,Pandas,我的代码: data = pd.DataFrame({'a': [1,2,3,4,5,6,7,8], 'group': [1,1,1,1,2,2,2,2], 'check':[0.5, 0.5,0.5,0.3,0.3,0.3,0.2,0.2]}) 输出: data.groupby(['group','check']).size() group check 1 0.3 1 0.5

我的代码:

data = pd.DataFrame({'a': [1,2,3,4,5,6,7,8],
                    'group': [1,1,1,1,2,2,2,2],
                    'check':[0.5, 0.5,0.5,0.3,0.3,0.3,0.2,0.2]})
输出:

data.groupby(['group','check']).size()
group  check
1      0.3      1
       0.5      3
2      0.2      2
       0.3      2
dtype: int64
我希望得到

因为我们有“1”组和“2”组

基于上述结果,我只想选择第二组或1以上的任何组(如果我们有两个以上的组)

示例输出:

group  check
2      0.2      2
       0.3      2
dtype: int64 

您可以执行以下操作。因此,在这里,我们获取单个
,并获取组键在第0个元素中没有1的所有项目。每个键都是一个元组
(group\u id,check\u val)
,然后将它们缩回并执行
groupby

grps = [grp for k, grp in data.groupby(['group','check']).groups.items() if k[0]!=1]
new_df =  pd.concat([data.loc[g] for g in grps]).groupby(['group', 'check']).size()
这就给了,

group  check
2      0.2      2
       0.3      2
dtype: int64
备选案文2:
小组都是数字吗?非常感谢,先生,这真的很有帮助。顺便问一下,你认为有没有其他方法可以使用pandas函数应用它?@Anonymous,那么你的意思是用另一种方法?回顾您的问题,您不能删除
group=1的所有元素,然后执行groupby吗?
new_df = data.loc[(data['group']!=1)].groupby(['group', 'check']).size()