如何解决CUT或value_counts()后拆分成Pandas bin后返回某个值的bin
假设我使用 df.value_counts(bins=10)
分割我的框架
这是它的样子
Values_mean
(53.649,90.21] 5127
(35.369,53.649] 4285
(90.21,108.49] 3559
(108.49,126.77] 2579
(866.77,935.05] 1526
(199.891,218.171] 1304
(218.171,251.451] 506
(-1.46699,17.089] 478
(251.451,284.732] 30
(284.732,343.012] 7
Name: Values_mean,dtype: int64
现在我想找出值的位置:newVal=38.54 将适合以及它在数据的哪个百分位。
示例:这些值的 CUMSUM = 19401
newVal=38.54
将属于 Bin :
(35.369,53.649] 4285
所以它的意思是 4285/19401,它属于 0.2208 的数据。
提前致谢
解决方法
您想对索引进行排序,然后使用 right
属性获得间隔的右侧。然后使用 searchsorted
找到适合搜索值的位置。使用该信息计算出计数值。
def ptile(x,s):
total = s.sum()
s = s.sort_index()
i = s.index.right.searchsorted(x)
return s.iloc[i] / total
ptile(38.54,s)
0.2208649038709345
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。