Python 在切割或值_计数()后拆分为多个存储箱后返回特定值的存储箱

Python 在切割或值_计数()后拆分为多个存储箱后返回特定值的存储箱,python,pandas,dataframe,numpy,data-fitting,Python,Pandas,Dataframe,Numpy,Data Fitting,假设我使用df.value\u计数(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,

假设我使用
df.value\u计数(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 是否适合,数据的百分比是多少

示例:这些值的总和=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

工作得很有魅力,谢谢;)