首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python如何基于固定阈值创建回收箱

Python如何基于固定阈值创建回收箱
EN

Stack Overflow用户
提问于 2021-11-04 17:28:57
回答 1查看 341关注 0票数 0

我有一个数据框架,我想创建基于以下逻辑的回收箱:绑定的阈值是5。

  1. 第一个桶(bin1)以第一个标记m1开始。然后用下一个标记m2计算位置的差异,给出位置(M2)-位置(M1)= 0.5-0 = 0.5。因为差异是<阈值,所以m2属于bin1。然后我们移到下一个标记m3。我们重复进程位置( m3 )-位置(M1)= 0.6,因为0.6 <阈值m3属于bin1.

  1. ,我们继续相同的操作,直到第一个标记的差值大于阈值为止。因此,由于位置( m6 )-位置(M1)= 7,即>阈值,m6不属于bin1,成为bin2的第一个标记。我们重复相同的过程:位置( m7 )-位置(M6)= 1.4,即<阈值,因此m7属于bin2。我希望你明白这个想法。--

  1. 本例的预期输出是

bin1 = 'm1','m2','m3','m4','m5‘bin2 = 'm6','m7’bin3 = 'm8','m9','m10'

关于绑定有很多问题,答案涉及qcut和cut。但我不确定他们是否为我的案子工作,或者我不知道如何应用于我的案件。提前谢谢你抽出时间。

代码语言:javascript
运行
复制
df = pd.DataFrame({'Marker': ['m1','m2','m3','m4','m5','m6','m7','m8','m9','m10'],
                  'Position': [0,0.5,0.6,2,5,7,8.4,15,16,17]})
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-04 17:40:02

使用floordiv

代码语言:javascript
运行
复制
df['Cluster'] = df['Position'].floordiv(5).astype(int).factorize()[0] + 1

输出:

代码语言:javascript
运行
复制
>>> df
  Marker  Position  Cluster
0     m1       0.0        1
1     m2       0.5        1
2     m3       0.6        1
3     m4       2.0        1
4     m5       5.0        2
5     m6       7.0        2
6     m7       8.4        2
7     m8      15.0        3
8     m9      16.0        3
9    m10      17.0        3
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69843435

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档