API · Pandas

Pandas cut Fonction

Ce tutoriel explique comment nous pouvons distribuer les données dans des plages également appelées bins en utilisant la méthode pandas.cut().

Sur cette page

La fonction pandas.cut() pourrait distribuer les données données données dans des plages, aussi appelées bins.

Nous utiliserons le DataFrame ci-dessous dans cet article.

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)

Production :

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

Syntaxe de la fonction pandas.cut()

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

Paramètres

x L’éventail donné
bins Les critères de classification des données
right Booléen. Si True, inclure également le numéro le plus à droite de la poubelle.
labels Array. Etiquettes pour les bacs.
retbins Booléen. Si True, retournez les poubelles.
precision Entier. Précision pour le stockage et l’affichage des bacs
ordered Booléen. Si c’est vrai, les étiquettes résultantes seront commandées

Retourne

Il retourne un tableau composé de valeurs de bin pour chaque élément du tableau x. Il retourne également les bins si nous avons défini retbins=True.

Exemple : Distribuer les valeurs des colonnes d’un DataFrame dans des bacs en utilisant la méthode 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)

Production :

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]

Il sépare les valeurs de la colonne Age dans le DataFrame df en tranches d’âge calculées en utilisant la valeur de l’argument bins de la méthode pandas.cut() et affiche finalement le DataFrame avec la valeur Age-Range pour chaque ligne.

Ici, (20,30] représente les valeurs de 20 à 30, excluant 20 et incluant 30.

Exemple : Distribuer les valeurs dans les bacs et assigner une étiquette à chaque bac en utilisant la méthode pandas.cut()

Par défaut, l’étiquette attribuée à chaque bac sera la plage du bac. Nous pouvons définir les étiquettes de bacs personnalisées en utilisant le paramètre labels de la fonction 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)

Production :

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

Il assigne chaque valeur de la colonne Age à des emplacements et ajoute une étiquette à chaque emplacement unique.

Exemple : Définissez le paramètre retbins=True dans la fonction pandas.cut() Méthode pour retourner les valeurs des bacs

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)

Production :

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]

Il affiche le DataFrame avec les valeurs Age-Range ainsi que les valeurs bin.