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

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *