python - 遍历 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
但我的情况有些不同。我该如何处理?
解决方案
你可以只使用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
推荐阅读
- java - 更改双格式 - 点到逗号
- sql - 如何在 Access 表单中格式化文本框字段以将数据显示为与导入文件中相同的数据到表中
- reinforcement-learning - 用于赛车的无模型或基于模型的深度强化学习?
- swift - 如何修复准备 segue 上的延迟数据?
- javascript - React js重定向不重定向
- python - python os.rename 找不到文件,即使代码检查它存在
- oracle - 为什么我的函数没有在一个中找不到数据时继续执行其他情况?
- java - 如何修复“从 MyClass 到 T 的未经检查的强制转换”
- r - 恢复因子变量的原始值
- php - 在ajax帖子上找不到路线