python - Python Pandas:条件滚动计数
问题描述
这是我的输入数据框:
type
a
a
a
a
a
b
b
a
a
a
这是我的预期输出:
type, id
a , 1
a , 2
a , 3
a , 4
a , 5
b , 5
b , 5
a , 6
a , 7
a , 8
我需要ID
根据列生成'type'
列。我有两种类型'a'
& 'b'
.. 只要它是'a'
我想增加ID
的。如果'b'
,保持以前'a'
ID
的。如何在 Pandas 数据框中执行此操作?
解决方案
您可以计算布尔系列的累积总和,指示您的系列何时等于一个值:
df['id'] = df['type'].eq('a').cumsum()
推荐阅读
- unity3d - 在 Unity3D 中获取对象的体积
- python-3.x - Traceback(最近一次调用最后一次):selenium.common.exceptions.WebDriverException:消息:未知错误:Chrome 无法启动:异常退出
- elasticsearch - Elasticsearch 插件上的 kibana 警告
- amazon-web-services - 如何避免删除现有的托管策略?
- d3.js - 在 d3.js 中引用字典值时出错
- swift - 如何:居中 UICollectionViewCells
- laravel - 如何在 Laravel 中实现 GoogleOR-Tool?特别是对于“作为最小成本流算法的分配”(Java)
- ajax - 如何使用 jquery Ajax 将多个输入发送到控制器 spring mvc
- python - 有没有一种方法可以使用键的值来比较两个字典?
- node.js - 如何填充 ObjectIDS 数组的每个条目?