为了账号安全,请及时绑定邮箱和手机立即绑定

如何对已排序的 pandas.Series 进行分组?

如何对已排序的 pandas.Series 进行分组?

宝慕林4294392 2021-12-17 14:52:54
给定一个已排序的pandas.Series(或只是一个列表)对象,我想创建组(例如,列表或pandas.Series),以便组中相邻元素之间的差异小于某个阈值,例如:THRESHOLD = 2sorted_list = [1, 2, 10, 15, 16, 17, 20, 21]# ...result = [[1, 2], [10], [15, 16, 17], [20, 21]]
查看完整描述

2 回答

?
qq_笑_17

TA贡献1818条经验 获得超7个赞

您可以使用diff和cumsum来标记组,然后使用groupby:


s = pd.Series(sorted_list)

s.groupby(s.diff().gt(THRESHOLD).cumsum()).apply(list).tolist()

# [[1, 2], [10], [15, 16, 17], [20, 21]]


查看完整回答
反对 回复 2021-12-17
?
catspeake

TA贡献1111条经验 获得超0个赞

使用


s = pd.Series(sorted_list)


[y.tolist() for x , y in s.groupby(s.diff().gt(THRESHOLD).cumsum())]

Out[167]: [[1, 2], [10], [15, 16, 17], [20, 21]]


查看完整回答
反对 回复 2021-12-17
  • 2 回答
  • 0 关注
  • 193 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号