Comment convertir une colonne de float (données quantitatives) en données catégorielles avec pandas en utilisant cut ?

Created 13 novembre 2022 | Viewed 47 | by Benjamin Edit


Exemples de conversion de données quantitatives en données catégorielles avec pandas en utilisant "cut":

Créer des données synthétiques

Commençons par créer de fausses données :

import random

l = [random.randint(0,100) for i in range(10)]

donne par exemple

[66, 44, 62, 99, 82, 13, 7, 58, 60, 38]

Enregistrer les données dans une dataframe

import pandas as pd
import numpy as np

data = np.array(l)

df = pd.DataFrame(data,columns=['x'])

print(df)

donne

    x
0  66
1  44
2  62
3  99
4  82
5  13
6   7
7  58
8  60
9  38

Aggregation

Pour convertir des données numériques en données catégorielles, une solution avec pandas consiste à utiliser cut

pd.cut(df['x'], [0,25,50,75,100], labels=['A', 'B', 'C', 'D'])

donne

0    C
1    B
2    C
3    D
4    D
5    A
6    A
7    C
8    C
9    B
Name: x, dtype: category
Categories (4, object): ['A' < 'B' < 'C' < 'D']

Créez une nouvelle colonne :

df['Cx'] = pd.cut(df['x'], [0,25,50,75,100], labels=['A', 'B', 'C', 'D'])

print(df)

donne

    x Cx
0  66  C
1  44  B
2  62  C
3  99  D
4  82  D
5  13  A
6   7  A
7  58  C
8  60  C
9  38  B