假设我有一个 pandas 的美元值系列,并想使用qcut
. 观察的数量不能被 9 整除。ntile
对于这种情况,SQL Server 的函数有一个标准方法:它使 9 个组中的前n个观察值大于其余 (9 -n ) 个组。
我在 pandas 中注意到,哪些组有x 个观察与x + 1 个观察的分配似乎是随机的。我试图破译算法中的代码以弄清楚分位数函数如何处理这个问题,但无法弄清楚。
我有三个相关的问题:
- 那里有任何熊猫开发人员可以解释
qcut
的行为吗?哪些组获得更多的观察值是随机的吗? - 有没有办法强制
qcut
行为类似于NTILE
(即第一组得到x + 1 个观察值)? - 如果对#2 的回答是否定的,关于函数的任何想法会表现得像
NTILE
吗?(如果这是一项复杂的工作,只需概述您的方法会有所帮助。)
下面是 SQL ServerNTILE
输出的示例。
Bin |# Observations
1 26
2 26
3 26
4 26
5 26
6 26
7 26
8 25
9 25
这是熊猫:
Bin |# Observations
1 26
2 26
3 26
4 25 (Why is this 25 vs others?)
5 26
6 26
7 25 (Why is this 25 vs others?)
8 26
9 26