考虑以下一系列网址。
s = pd.Series(np.random.randint(100, size=10000), name='URL')
使用
pd.Series.value_counts
函数获取计数列表,并使用
normalize=True
选项。另外,确保使用
ascending=True
进行升序排序。
vc = s.value_counts(normalize=True, ascending=True)
vc
现在是一个序列,其索引是URL
,值是规范化的counts
。由于它是按升序排序的,我们可以执行累积求和并取出您要查找的断点处项目的位置。
a = vc.cumsum().searchsorted(np.linspace(.1, 1, 9, 0))
vc.index[a]
Int64Index([64, 40, 20, 18, 9, 45, 67, 30, 77], dtype='int64')
我们可以观察结果。
a = vc.cumsum().searchsorted(np.linspace(.1, 1, 9, 0))
pd.concat([vc.cumsum().iloc[a], vc.iloc[a]], axis=1, keys=['Cumsum', 'Normalized'])
Cumsum Normalized
64 0.1075 0.0089
40 0.2083 0.0094
20 0.3036 0.0096
18 0.4010 0.0099
9 0.5010 0.0101
45 0.6032 0.0103
67 0.7084 0.0106
30 0.8049 0.0108
77 0.9053 0.0114