发布于2024-11-30 15:32 阅读(1018) 评论(0) 点赞(27) 收藏(0)
我有一些数据框,想将其中相对较近的值分组。
我尝试使用百分位数,但通常一个组中的值之间存在巨大差异。例如,列中有 1000 个值,如下所示
Values
1
1
2
2
3
3
4
5
...
200
...
30000
...
500000
当数据的百分位数 80 为 200,但百分位数 90 为 10000 时,就会出现问题
我尝试使用diff gt cumsum按静态值对它们进行分组,但当 90% 的值非常接近但剩下的 10% 的值大得多且分散时,结果并不总是对所有数据集都很好。
编辑:创建了一个小样本,百分位数就是这样的。
Percentile Value
0.10 4.00
0.20 10.00
0.30 34.00
0.40 57.60
0.50 91.00
0.60 106.00
0.70 158.80
0.80 205.60
0.90 9114.00
如果我将其分成 10 组,那么第 9 组和第 10 组将包含具有超过可接受差异的值。
这就是使用的样子
.diff().gt(100).cumsum()
values groups
2 0
2 0
2 0
2 0
2 0
2 0
2 0
2 0
4 0
4 0
4 0
4 0
4 0
4 0
4 0
4 0
6 0
6 0
8 0
8 0
8 0
10 0
10 0
10 0
10 0
10 0
16 0
16 0
16 0
24 0
26 0
28 0
30 0
30 0
30 0
34 0
34 0
34 0
36 0
40 0
42 0
42 0
42 0
48 0
50 0
50 0
52 0
52 0
56 0
60 0
60 0
62 0
64 0
68 0
74 0
78 0
80 0
88 0
88 0
88 0
88 0
94 0
94 0
96 0
96 0
98 0
100 0
100 0
102 0
102 0
102 0
106 0
106 0
106 0
106 0
118 0
120 0
120 0
120 0
128 0
132 0
134 0
136 0
142 0
156 0
160 0
160 0
164 0
172 0
176 0
178 0
180 0
188 0
198 0
200 0
202 0
204 0
206 0
226 0
236 0
276 0
292 0
294 0
324 0
344 0
562 1
808 2
2626 3
3210 4
9770 5
12398 6
13300 7
15756 8
16000 9
16000 9
20000 10
20784 11
23500 12
32000 13
32000 13
42014 14
346046 15
在这种情况下,第 0 组应该进一步拆分,第 6-9 组可以合并,第 10-12 组可以合并。
理想情况下,组中的任何值都不应大于该组中任何其他值的 2 倍。
作者:黑洞官方问答小能手
链接:https://www.pythonheidong.com/blog/article/2046220/5c1cfdc1560bf082b094/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!