Pandas Función cut

Suraj Joshi 30 enero 2023
  1. Sintaxis de la función pandas.cut()
  2. Ejemplo: distribuir valores de columna de un DataFrame en contenedores utilizando el método pandas.cut()
  3. Ejemplo: distribuir valores en contenedores y asignar una etiqueta a cada contenedor mediante el método pandas.cut()
  4. Ejemplo: Establezca retbins = True en el método pandas.cut() para devolver los valores de bin
Pandas Función cut

La función pandas.cut() podría distribuir los datos dados en rangos, también llamados bins.

Usaremos el siguiente DataFrame en este artículo.

import pandas as pd

df = pd.DataFrame(
    {
        "Name": ["Anish", "Birat", "Chirag", "Kabin", "Sachin"],
        "Age": [23, 34, 38, 45, 27],
        "Score": [316, 322, 332, 330, 325],
    }
)

print(df)

Producción:

     Name  Age  Score
0   Anish   23    316
1   Birat   34    322
2  Chirag   38    332
3   Kabin   45    330
4  Sachin   27    325

Sintaxis de la función pandas.cut()

pandas.cut(
    x,
    bins,
    right=True,
    labels=None,
    retbins=False,
    precision=3,
    include_lowest=False,
    duplicates="raise",
    ordered=True,
)

Parámetros

x La matriz dada
bins Los criterios para agrupar los datos
right Booleano. Si es True, incluya también el número más a la derecha del contenedor.
labels Formación. Etiquetas para los contenedores.
retbins Booleano. Si es True, devuelva los contenedores.
precision Entero. Precisión para almacenar y mostrar contenedores
ordered Booleano. Si es True, las etiquetas resultantes se ordenarán

Retorna

Devuelve un array que consta de valores bin para cada elemento en el array x. También devuelve los bins si hemos establecido retbins = True.

Ejemplo: distribuir valores de columna de un DataFrame en contenedores utilizando el método pandas.cut()

import pandas as pd

df = pd.DataFrame(
    {
        "Name": ["Anish", "Birat", "Chirag", "Kabin", "Sachin"],
        "Age": [23, 34, 38, 45, 27],
        "Score": [316, 322, 332, 330, 325],
    }
)

print("Initial DataFrame:")
print(df, "\n")

df["Age-Range"] = pd.cut(x=df["Age"], bins=[20, 30, 40, 50])

print("DataFrame with Age-Range:")
print(df)

Producción:

Initial DataFrame:
     Name  Age  Score
0   Anish   23    316
1   Birat   34    322
2  Chirag   38    332
3   Kabin   45    330
4  Sachin   27    325

DataFrame with Age-Range:
     Name  Age  Score Age-Range
0   Anish   23    316  (20, 30]
1   Birat   34    322  (30, 40]
2  Chirag   38    332  (30, 40]
3   Kabin   45    330  (40, 50]
4  Sachin   27    325  (20, 30]

Separa los valores de la columna Age en el DataFrame df en los rangos de edad calculados utilizando el valor del argumento bins en el método pandas.cut() y finalmente muestra el DataFrame con el valor de Age-Range por cada fila.

Aquí, (20,30] representa los valores de 20 a 30, excluyendo 20 e incluyendo 30.

Ejemplo: distribuir valores en contenedores y asignar una etiqueta a cada contenedor mediante el método pandas.cut()

De forma predeterminada, la etiqueta asignada a cada contenedor será el rango del contenedor. Podemos configurar las etiquetas de contenedor personalizadas usando el parámetro labels en la función pandas.cut().

import pandas as pd

df = pd.DataFrame(
    {
        "Name": ["Anish", "Birat", "Chirag", "Kabin", "Sachin"],
        "Age": [23, 34, 38, 45, 27],
        "Score": [316, 322, 332, 330, 325],
    }
)

print("Initial DataFrame:")
print(df, "\n")

bin_labels = labels = ["21 to 30", "31 to 40", "41 to 50"]
df["Age-Range"] = pd.cut(x=df["Age"], bins=[20, 30, 40, 50], labels=bin_labels)

print("DataFrame with Age-Range:")
print(df)

Producción:

Initial DataFrame:
     Name  Age  Score
0   Anish   23    316
1   Birat   34    322
2  Chirag   38    332
3   Kabin   45    330
4  Sachin   27    325

DataFrame with Age-Range:
     Name  Age  Score Age-Range
0   Anish   23    316  21 to 30
1   Birat   34    322  31 to 40
2  Chirag   38    332  31 to 40
3   Kabin   45    330  41 to 50
4  Sachin   27    325  21 to 30

Asigna cada valor de la columna Age en contenedores y agrega una etiqueta a cada contenedor único.

Ejemplo: Establezca retbins = True en el método pandas.cut() para devolver los valores de bin

import pandas as pd

df = pd.DataFrame(
    {
        "Name": ["Anish", "Birat", "Chirag", "Kabin", "Sachin"],
        "Age": [23, 34, 38, 45, 27],
        "Score": [316, 322, 332, 330, 325],
    }
)

print("Initial DataFrame:")
print(df, "\n")

bin_labels = labels = ["21 to 30", "31 to 40", "41 to 50"]
df["Age-Range"], bin_values = pd.cut(
    x=df["Age"], bins=[20, 30, 40, 50], labels=bin_labels, retbins=True
)

print("DataFrame with Age-Range:")
print(df, "\n")

print("The bin values are:")
print(bin_values)

Producción:

Initial DataFrame:
     Name  Age  Score
0   Anish   23    316
1   Birat   34    322
2  Chirag   38    332
3   Kabin   45    330
4  Sachin   27    325

DataFrame with Age-Range:
     Name  Age  Score Age-Range
0   Anish   23    316  21 to 30
1   Birat   34    322  31 to 40
2  Chirag   38    332  31 to 40
3   Kabin   45    330  41 to 50
4  Sachin   27    325  21 to 30

The bin values are:
[20 30 40 50]

Muestra el DataFrame con los valores de Age-Range junto con los valores del contenedor.

Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Artículo relacionado - Pandas DataFrame