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_group
为 True
的第一行的索引开始,并在新的 is_new_group
为 True
时结束
在这种情况下,应该将数据分为两组:
前 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 中,True
和 False
在对它们执行计算时分别转换为 1
和 0
。
df.groupby(df.is_new_group.cumsum())
随心所欲
我有这个代码:
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_group
为 True
的第一行的索引开始,并在新的 is_new_group
为 True
在这种情况下,应该将数据分为两组:
前 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 中,True
和 False
在对它们执行计算时分别转换为 1
和 0
。
df.groupby(df.is_new_group.cumsum())
随心所欲