Python 熊猫:如何基于系列模式进行分组

Python 熊猫:如何基于系列模式进行分组,python,pandas,pandas-groupby,Python,Pandas,Pandas Groupby,具有以下特征: pd.DataFrame({'bool':[True,True,True, False,True,True,True], 'foo':[1,3,2,6,2,4,7]}) 其结果是: bool foo 0 True 1 1 True 3 2 True 2 3 False 6 4 True 2 5 True 4 6 True 7 如何将Trues分组为两组,以便在组1中有

具有以下特征:

pd.DataFrame({'bool':[True,True,True, False,True,True,True],
              'foo':[1,3,2,6,2,4,7]})
其结果是:

    bool    foo
0   True    1
1   True    3
2   True    2
3   False   6
4   True    2
5   True    4
6   True    7
如何将Trues分组为两组,以便在组1中有索引[0:2],在组2中有索引[4:6]

所需输出: 第一组:

第2组:

4   True    2
5   True    4
6   True    7
谢谢大家!

你可以做:

将numpy作为np导入 x=df[df[bool]]索引值 组=np.splitx,其中np.diffx>1[0]+1 df_groups=[df.iloc[gr,:]表示组中的gr] 输出如下所示:

df_组[0] 出[56]: 布尔福 0对1 1对3 2正确的2 df_组[1] 出[57]: 布尔福 4正确的2 5对4 6对7
下面是一个简单的方法:

# Split the dataframe by `Series` using `cumsum`
g =(~data['bool']).cumsum().where(data['bool'])

dfs= {'group_'+str(i+1):v for i, (k, v) in enumerate(data[['foo']].groupby(g))}
您可以使用键“group_uu”+stri+1(如group_1、group_2等)访问每个数据帧:


您也可以发布所需的输出吗?@anky_91,我已经发布了所需的输出,正如您所要求的,谢谢
# Split the dataframe by `Series` using `cumsum`
g =(~data['bool']).cumsum().where(data['bool'])

dfs= {'group_'+str(i+1):v for i, (k, v) in enumerate(data[['foo']].groupby(g))}
print(dfs['group_1'])

   foo
0    1
1    3
2    2