pandas 分组数据帧直到特定值

pandas group dataframe until a specific value

我有这个代码:

d = {'col1': [1, 2, 3, 4, 5, 6], 'col2': [7, 8, 9, 10, 11, 12], 'is_new_group': [True, False, False, True, False, False] }
pd.DataFrame(d)

我想将数据分组。 每个组将从 is_new_groupTrue 的第一行的索引开始,并在新的 is_new_groupTrue

时结束

在这种情况下,应该将数据分为两组: 前 3 行和后 3 行:

我找到了`pd.groupby```。

根据文档,by 参数:mapping, function, label, or list of labels

但这是不同的情况。

如何根据需求对值进行分组?

如果 True 是新组的标志,您可以检查它是否正确并使用 cumsum 创建您的组标签。可以用来分组。

df.groupby(df.is_new_group.eq(True).cumsum())

使用cumsum检测每个新的True。在 Python 中,TrueFalse 在对它们执行计算时分别转换为 10

df.groupby(df.is_new_group.cumsum())

随心所欲