Agrupa los valores en intervalos discretos.
Usar Corte cuando necesite segmentar y ordenar valores de datos en bins. Esta función también es útil para pasar de una variable continua a una categórica. Por ejemplo, Corte podría convertir edades en grupos de rangos de edad. Admite la agrupación en un número igual de contenedores o en una matriz de contenedores preespecificada.
- Parámetros
-
- X : como una matriz
-
La matriz de entrada que se va a agrupar. Debe ser unidimensional.
- contenedores : int, secuencia de escalares o IntervalIndex
-
Los criterios de clasificación.
-
int: Define el número de bins de igual ancho en el rango de X. El rango de X se extiende un .1% en cada lado para incluir los valores mínimo y máximo de X.
-
Secuencia de escalares: Define los bordes del contenedor permitiendo un ancho no uniforme. Sin extensión de la gama de X está hecho.
-
IntervalIndex: define los contenedores exactos que se utilizarán. Tenga en cuenta que IntervalIndex para contenedores no debe superponerse.
- Derecha : bool, por defecto True
-
Indica si contenedores incluye el borde más a la derecha o no. Si right==True
(el predeterminado), luego el contenedores[1,2,3,4]
indicar (1,2](2,3](3,4). Este argumento se ignora cuando contenedores es un IntervalIndex.
- etiquetas : matriz o Falso, por defecto Ninguno
-
Especifica las etiquetas de los contenedores devueltos. Debe tener la misma longitud que los contenedores resultantes. Si es False, devuelve solo indicadores enteros de los bins. Esto afecta el tipo de contenedor de salida (ver más abajo). Este argumento se ignora cuando contenedores es un IntervalIndex. Si es Verdadero, genera un error. Cuando ordenado = Falso, se deben proporcionar etiquetas.
- retbins : bool, predeterminado Falso
-
Ya sea para devolver los contenedores o no. Útil cuando los bins se proporcionan como escalares.
- precisión : int, predeterminado 3
-
La precisión con la que almacenar y mostrar las etiquetas de los contenedores.
- include_lowest : bool, predeterminado Falso
-
Si el primer intervalo debe ser inclusivo a la izquierda o no.
- duplicados : predeterminado ‘subir’, ‘soltar’, opcional
-
Si los bordes del contenedor no son únicos, genere ValueError o elimine los no únicos.
- ordenado : bool, por defecto True
-
Si las etiquetas están ordenadas o no. Se aplica a los tipos devueltos Categorical y Series (con Categorical dtype). Si es True, se ordenará el categórico resultante. Si es False, el categórico resultante no estará ordenado (se deben proporcionar etiquetas).
Nuevo en la versión 1.1.0.
- Devoluciones
-
- fuera : Categórico, serie o ndarray
-
Un objeto similar a una matriz que representa el contenedor respectivo para cada valor de X. El tipo depende del valor de etiquetas.
-
Verdadero (predeterminado): devuelve una serie para la serie X o un Categórico para todas las demás entradas. Los valores almacenados dentro son de tipo Intervalo.
-
secuencia de escalares: devuelve una serie para una serie X o un Categórico para todas las demás entradas. Los valores almacenados dentro son cualquiera que sea el tipo de la secuencia.
-
Falso: devuelve un ndarray de enteros.
- contenedores : numpy.ndarray o IntervalIndex.
-
Los bins calculados o especificados. Solo regresó cuando retbins = Verdadero. Para escalar o secuencia contenedores, este es un ndarray con los bins calculados. Si está configurado duplicados = soltar, contenedores soltará un contenedor no único. Para un IntervalIndex contenedores, esto es igual a contenedores.
Ver también
qcut
-
Discretice la variable en cubos de igual tamaño según el rango o según los cuantiles de muestra.
Categorical
-
Tipo de matriz para almacenar datos que provienen de un conjunto fijo de valores.
Series
-
Matriz unidimensional con etiquetas de eje (incluidas series de tiempo).
IntervalIndex
-
Índice inmutable que implementa un conjunto ordenado y divisible.
Notas
Cualquier valor de NA será NA en el resultado. Los valores fuera de límites serán NA en el objeto Serie o Categórico resultante.
Ejemplos de
Discretice en tres contenedores de igual tamaño.
>>> pd.cut(np.array([1,7,5,4,6,3]),3)...[(0.994,3.0],(5.0,7.0],(3.0,5.0],(3.0,5.0],(5.0,7.0],...
Categories (3, interval[float64]):[(0.994,3.0]<(3.0,5.0]...
>>> pd.cut(np.array([1,7,5,4,6,3]),3, retbins=True)...([(0.994,3.0],(5.0,7.0],(3.0,5.0],(3.0,5.0],(5.0,7.0],...
Categories (3, interval[float64]):[(0.994,3.0]<(3.0,5.0]...
array([0.994,3.,5.,7.]))
Descubre los mismos contenedores, pero asígneles etiquetas específicas. Observe que las categorías de categóricas devueltas son etiquetas y se ordena.
>>> pd.cut(np.array([1,7,5,4,6,3]),...3, labels=["bad","medium","good"])['bad','good','medium','medium','good','bad']
Categories (3,object):['bad'<'medium'<'good']
ordered=False
dará como resultado categorías desordenadas cuando se pasen las etiquetas. Este parámetro se puede utilizar para permitir etiquetas no únicas:
>>> pd.cut(np.array([1,7,5,4,6,3]),3,... labels=["B","A","B"], ordered=False)['B','B','A','A','B','B']
Categories (2,object):['A','B']
labels=False
implica que solo quieres los contenedores de vuelta.
>>> pd.cut([0,1,1,2], bins=4, labels=False)
array([0,1,1,3])
Pasar una serie como entrada devuelve una serie con dtype categórico:
>>> s = pd.Series(np.array([2,4,6,8,10]),... index=['a','b','c','d','e'])>>> pd.cut(s,3)...
a (1.992,4.667]
b (1.992,4.667]
c (4.667,7.333]
d (7.333,10.0]
e (7.333,10.0]
dtype: category
Categories (3, interval[float64]):[(1.992,4.667]<(4.667,...
Pasar una serie como entrada devuelve una serie con un valor de mapeo. Se utiliza para mapear numéricamente a intervalos basados en bins.
>>> s = pd.Series(np.array([2,4,6,8,10]),... index=['a','b','c','d','e'])>>> pd.cut(s,[0,2,4,6,8,10], labels=False, retbins=True, right=False)...(a 1.0
b 2.0
c 3.0
d 4.0
e NaN
dtype: float64,
array([0,2,4,6,8,10]))
Usar soltar opcional cuando los bins no son únicos
>>> pd.cut(s,[0,2,4,6,10,10], labels=False, retbins=True,... right=False, duplicates='drop')...(a 1.0
b 2.0
c 3.0
d 3.0
e NaN
dtype: float64,
array([0,2,4,6,10]))
Pasando un IntervalIndex para contenedores resultados en esas categorías exactamente. Observe que los valores no cubiertos por IntervalIndex se establecen en NaN. 0 está a la izquierda del primer contenedor (que está cerrado a la derecha) y 1,5 se encuentra entre dos contenedores.
>>> bins = pd.IntervalIndex.from_tuples([(0,1),(2,3),(4,5)])>>> pd.cut([0,0.5,1.5,2.5,4.5], bins)[NaN,(0.0,1.0], NaN,(2.0,3.0],(4.0,5.0]]
Categories (3, interval[int64]):[(0,1]<(2,3]<(4,5]]