Предположим, у меня была серия значений доллара в долларах США и вы хотели дискретироваться на 9 групп, используя qcut
. Число наблюдений не делится на 9. Функция SQL Server ntile
имеет стандартный подход для этого случая: он делает первый n из 9 групп. 1 наблюдение больше, чем остальные (9-n) групп.Python Pandas qcut поведение с # наблюдениями, не делящимися на количество ящиков
я заметил в панд, что назначение которых группы имели х наблюдения против х + 1 наблюдения казалось случайным. Я попытался расшифровать код в algos, чтобы выяснить, как функция квантиля справляется с этой проблемой, но не могла понять это.
У меня есть три взаимосвязанных вопроса:
- Любые панды разработчиков там, чем можно объяснить поведение
qcut
«s? Является ли случайным, какие группы получают большее количество наблюдений? - Есть ли способ заставить
qcut
вести себя аналогичноNTILE
(то есть, первые группы получают x + 1 наблюдение)? - Если ответ на # 2 нет, любые идеи относительно функции, которая будет вести себя как
NTILE
? (Если это сложная задача, будет полезно использовать схему вашего подхода.)
Ниже приведен пример вывода SQL Server NTILE
.
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
Какой ввод дает этот результат? Можете ли вы поделиться своим кодом серии и панды? –