我有一个pandas DataFrame,它有一个布尔列,用于指示给定行是否实际上是标头(相对于值(。我希望能够使pandas按标题行之外的对象分组,并在下一个标题之前的所有后续行分组。
想象一个具有以下列的DataFrame:
pd.Series([True, False, False, False, True, False False])
我想运行一个groupby语句,该语句将此DataFrame分为两组:[True,False,False,False]和[True、False False]。我该怎么做?
在列B上执行cumsum
,然后使用它对进行分组
df.groupby(df['your_col'].cumsum())
下面是一个例子:
df
A B
0 a True
1 b False
2 c False
3 d False
4 e True
5 f False
6 g False
df.groupby(df['B'].cumsum())['B'].agg(list)
B
1 [True, False, False, False]
2 [True, False, False]
Name: B, dtype: object