Funzione Pandas cut

Suraj Joshi 30 gennaio 2023
  1. pandas.cut() Sintassi della funzione
  2. Esempio: distribuire i valori delle colonne di un DataFrame in contenitori utilizzando il metodo pandas.cut()
  3. Esempio: distribuire valori in contenitori e assegnare un’etichetta a ciascun contenitore utilizzando il metodo pandas.cut()
  4. Esempio: imposta retbins=True nel metodo pandas.cut() per restituire i valori bin
Funzione Pandas cut

La funzione pandas.cut() potrebbe distribuire i dati dati in intervalli, chiamati anche bins.

Useremo il DataFrame di seguito in questo articolo.

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)

Produzione:

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

pandas.cut() Sintassi della funzione

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

Parametri

x La matrice data
bins I criteri per raggruppare i dati
right Booleano. Se True, includi anche il numero più a destra del cestino.
labels Vettore. Etichette per i bidoni.
retbins Booleano. Se True, restituisci i bidoni.
precision Numero intero. Precisione per la conservazione e la visualizzazione dei contenitori
ordered Booleano. Se True, le etichette risultanti verranno ordinate

Ritorno

Restituisce un array costituito da valori bin per ogni elemento dell’array x. Restituisce anche i bin se abbiamo impostato retbins=True.

Esempio: distribuire i valori delle colonne di un DataFrame in contenitori utilizzando il metodo 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)

Produzione:

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 i valori della colonna Age nel DataFrame df nelle fasce d’età calcolate utilizzando il valore dell’argomento bins nel metodo pandas.cut() e infine mostra DataFrame con il valore Age-Range per ogni riga.

Qui, (20,30] rappresenta i valori da 20 a 30, esclusi 20 e inclusi 30.

Esempio: distribuire valori in contenitori e assegnare un’etichetta a ciascun contenitore utilizzando il metodo pandas.cut()

Per impostazione predefinita, l’etichetta assegnata a ciascun contenitore sarà l’intervallo del contenitore. Possiamo impostare le etichette bin personalizzate usando il parametro labels nella funzione 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)

Produzione:

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

Assegna ogni valore della colonna Età a contenitori e aggiunge un’etichetta a ciascun contenitore univoco.

Esempio: imposta retbins=True nel metodo pandas.cut() per restituire i valori 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)

Produzione:

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]

Visualizza il DataFrame con i valori Age-Range insieme ai valori bin.

Autore: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn

Articolo correlato - Pandas DataFrame