使用循环行值或布尔值来定义pandas groupby的边界



我有一个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

最新更新