Comment changer le type de colonne dans Pandas (avec exemples)
Les colonnes d’un DataFrame pandas peuvent prendre l’un des types suivants :
- objet (chaînes)
- int64 (entiers)
- float64 (valeurs numériques avec décimales)
- bool (valeurs vraies ou fausses)
- datetime64 (dates et heures)
Le moyen le plus simple de convertir une colonne d’un type de données à un autre consiste à utiliser la fonction astype() .
Vous pouvez utiliser les méthodes suivantes avec la fonction astype() pour convertir des colonnes d’un type de données à un autre :
Méthode 1 : convertir une colonne en un autre type de données
df['col1'] = df['col1'].astype('int64')
Méthode 2 : convertir plusieurs colonnes en un autre type de données
df[['col1', 'col2']] = df[['col1', 'col2']].astype('int64')
Méthode 3 : convertir toutes les colonnes en un autre type de données
df = df.astype('int64')
Les exemples suivants montrent comment utiliser chaque méthode en pratique avec le DataFrame pandas suivant :
import pandas as pd #create DataFrame df = pd.DataFrame({'ID': ['1', '2', '3', '4', '5', '6'], 'tenure': [12.443, 15.8, 16.009, 5.06, 11.075, 12.9546], 'sales': [5, 7, 7, 9, 12, 9]}) #view DataFrame print(df) ID tenure sales 0 1 12.4430 5 1 2 15.8000 7 2 3 16.0090 7 3 4 5.0600 9 4 5 11.0750 12 5 6 12.9546 9 #view data type of each column print(df.dtypes) ID object tenure float64 sales int64 dtype: object
Exemple 1 : convertir une colonne en un autre type de données
Le code suivant montre comment utiliser la fonction astype() pour convertir la colonne de tenure d’un flottant en un entier :
#convert tenure column to int64
df['tenure'] = df['tenure'].astype('int64')
#view updated data type for each column
print(df.dtypes)
ID object
tenure int64
sales int64
dtype: object
Notez que la colonne de tenure a été convertie en int64 tandis que toutes les autres colonnes ont conservé leur type de données d’origine.
Exemple 2 : convertir plusieurs colonnes en un autre type de données
Le code suivant montre comment utiliser la fonction astype() pour convertir les colonnes ID et tenure en entier :
#convert ID and tenure columns to int64
df[['ID', 'tenure']] = df[['ID', 'tenure']].astype('int64')
#view updated data type for each column
print(df.dtypes)
ID int64
tenure int64
sales int64
dtype: object
Notez que les colonnes ID et titularisation ont été converties en int64.
Exemple 3 : convertir toutes les colonnes en un autre type de données
Le code suivant montre comment utiliser la fonction astype() pour convertir toutes les colonnes du DataFrame en un type de données entier :
#convert all columns to int64
df = df.astype('int64')
#view updated data type for each column
print(df.dtypes)
ID int64
tenure int64
sales int64
dtype: object
Notez que toutes les colonnes ont été converties en int64.
Remarque : Vous pouvez trouver la documentation complète de la fonction pandas astype() ici .
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres conversions courantes dans les pandas :
Comment convertir les colonnes Pandas DataFrame en chaînes
Comment convertir l’horodatage en date/heure dans Pandas
Comment convertir DateHeure en date dans Pandas
Comment convertir des chaînes en flotteur dans Pandas