python - 如何计算列表中值块的大小?
问题描述
我有一个这样的列表:
list_1 = [0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1]
如何计算此列表中的值块的1
大小0
?结果列表将如下所示:
list_2 = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 1, 1]
解决方案
尝试cumsum
与diff
thentransform
count
s = pd.Series(list_1)
s.groupby(s.diff().ne(0).cumsum()).transform('count')
Out[91]:
0 1
1 2
2 2
3 3
4 3
5 3
6 4
7 4
8 4
9 4
10 1
11 1
dtype: int64
推荐阅读
- swift - 为stackView中的项目设置最大高度的约束
- alpha-vantage - 从 Alphavantage 请求全尺寸数据时出现 API 错误
- soapui - 如何使用来自 sql 查询的 jdbc 响应的参数之一到 json(请求参数)中的有效负载中进行 Web 服务测试
- leaflet - 从地图对象获取图层控件
- reactjs - React Material UI ExpansionPanel 移除边框
- selenium - 将焦点切换到 Chrome 中重新打开的选项卡 - selenium
- javascript - 在反应中制作“填空”
- python - Pygame精灵在向下移动后没有立即移动
- wordpress - 如何有效地同时设置 wordpress 和 AWS Amplify?
- amazon-web-services - 如何从选择状态阶跃函数过渡?