python - Python Pandas:按列和组大小分组
问题描述
我有这个熊猫数据框:
column1 column2
1 1
1 2
1 3
1 4
1 5
2 6
2 7
3 8
并且需要按 column1 对其进行分组,但如果该组的元素超过 2 个,则将其划分。然后应用一个 ngroup 函数,得到:
column1 column2 column3
1 1 0
1 2 0
1 3 1
1 4 1
1 5 2
2 6 3
2 7 3
3 8 4
解决方案
GroupBy.cumcount
与整数除法一起使用2
for 助手Series
并传递给groupby
for GroupBy.ngroup
:
s = df.groupby('column1').cumcount() // 2
df['column3'] = df.groupby([s, 'column1'], sort=False).ngroup()
print (df)
column1 column2 column3
0 1 1 0
1 1 2 0
2 1 3 1
3 1 4 1
4 1 5 2
5 2 6 3
6 2 7 3
7 3 8 4
推荐阅读
- python - 计算中位数的自定义函数(带字符串)
- asp.net - 设置 GridView 的 EditIndex 会使 EditItemTemplate 中的元素不更新
- c# - 对类型 system.icloneable' 的引用声称它在 system.runtime 中定义但无法找到
- javascript - angularjs 承诺/超时:条件超时
- angular6 - 反应式表单 - 在提交时,检查表单中是否至少有一项更改,然后才调用 API
- ionic4 - Ionic 4 迁移:IonicModule 更改
- javascript - setTimeout() 跳转到数组的最后一个元素我该如何防止这种情况?
- mysql - 我需要在下面的 sql 查询中使用什么类型的连接来检索正确的结果?
- node.js - 服务器端渲染和生成缓存的 index.html(Vuejs、Nodejs)
- javascript - 从 ftp 运行时“THREE.GLTFLoader: Unable to parse model”