pandas.qcut
- pandas.qcut(x, q, labels=None, retbins=False, precision=3, duplicates='raise')[source]
-
Функция дискретизации на основе квантилей.
Разбивает переменную на равные по размеру интервалы на основе ранга или выборочных квантилей. Например, 1000 значений для 10 квантилей приведет к объекту Categorical, указывающему квантильную принадлежность каждого значения данных.
- Параметры:
-
- x: одномерный массив ndarray или Series
- q: целое число или список чисел с плавающей точкой
-
Количество квантилей. 10 для десятилевых, 4 для квартилей и т. д. В качестве альтернативы, массив квантилей, например, [0, 0.25, 0.5, 0.75, 1.] для квартилей.
- labels: массив или False, по умолчанию None
-
Используется в качестве меток для полученных интервалов. Должен иметь такую же длину, как и полученные интервалы. Если False, возвращаются только целочисленные индикаторы интервалов. Если True, возникает ошибка.
- retbins: bool, необязательно
-
Возвращать ли (интервалы, метки) или нет. Может быть полезно, если интервалы заданы как скаляр.
- precision: целое число, необязательно
-
Точность хранения и отображения меток интервалов.
- duplicates:{по умолчанию ‘raise’, ‘drop’}, необязательно
-
Если границы интервалов не уникальны, вызывать ValueError или удалять не уникальные.
- Возвращаемое значение:
-
- out: Categorical или Series или массив целых чисел, если labels - False
-
Тип возвращаемого значения (Categorical или Series) зависит от входных данных: Series типа category, если вход - Series, иначе Categorical. Интервалы представлены как категории, если возвращаются категориальные данные.
- bins: ndarray с плавающей точкой
-
Возвращается только если retbins равно True.
Примечания
Значения вне диапазона будут NA в результирующем объекте Categorical
Примеры
>>> pd.qcut(range(5), 4) ... [(-0.001, 1.0], (-0.001, 1.0], (1.0, 2.0], (2.0, 3.0], (3.0, 4.0]] Categories (4, interval[float64, right]): [(-0.001, 1.0] < (1.0, 2.0] ...
>>> pd.qcut(range(5), 3, labels=["good", "medium", "bad"]) ... [good, good, medium, bad, bad] Categories (3, object): [good < medium < bad]
>>> pd.qcut(range(5), 4, labels=False) array([0, 0, 1, 2, 3])
© 2008–2022, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/2.2.2/reference/api/pandas.qcut.html