首页 > 解决方案 > 遍历 panda 列以分配事件

问题描述

假设我有一个像[0,0,0,1,0,0,1,0].

每当迭代器遇到 1 时,将包含 1 的前面的列表分配给一个事件。这一直持续到遇到下一个 1。因此,在这种情况下,有 2 个事件。

但是如果列表是 like [0,0,1,1,0,0,1],这仍然算作 2 个事件,因为连续的 1 被一起考虑。

截至目前,我排除了[1,0,0,1].

如果左边的 0 或 1 属于哪个事件,例如 Event 1 或 Event 2 等,可以创建一个新列来反映。

我发现了一些使用方法,zip但我的情况有些不同。我该如何处理?

标签: pythonpandasiterator

解决方案


你可以只使用itertools.groupby

import itertools 
l=[0,0,1,1,0,0,1]
[list(y)[0]==1 for x , y in itertools.groupby(l)]
Out[853]: [False, True, False, True]
sum([list(y)[0]==1 for x , y in itertools.groupby(l)])
Out[854]: 2

推荐阅读