我有一个熊猫系列(作为更大的数据框的一部分),如下所示:
0 7416 1 10630 2 7086 3 2091 4 3995 5 1304 6 519 7 1262 8 3676 9 2371 10 5346 11 912 12 3653 13 1093 14 2986 15 2951 16 11859
我想根据以下分位数对行进行分组:
Top 0-5% Top 6-10% Top 11-25% Top 26-50% Top 51-75% Top 76-100%
首先,我开始使用pd.rank()
数据,然后我计划然后使用pd.cut()
将数据切割成容器,但它似乎不接受顶部N%,而是接受显式bin边缘.有没有一种简单的方法在pandas中执行此操作,或者我是否需要创建一个lambda/apply函数来计算每个排序项应放在哪个bin中.
这是你的想法吗?
pd.qcut(data, [0.05, 0.1, 0.25, 0.5, 0.75, 1])