Convertir un objet en float dans les pandas

Manav Narula 30 janvier 2023
  1. Utilisez la méthode astype() pour convertir un objet en float dans les pandas
  2. Utilisez la fonction to_numeric() pour convertir un objet en Float dans les pandas
Convertir un objet en float dans les pandas

Dans ce tutoriel, nous nous concentrerons sur la conversion d’une colonne de type objet pour qu’elle flotte dans Pandas. Une colonne de type objet contient une chaîne de caractères ou un mélange d’autres types, tandis que float contient des valeurs décimales. Dans cet article, nous travaillerons sur le DataFrame suivant.

import pandas as pd

df = pd.DataFrame(
    [["10.0", 6, 7, 8], ["1.0", 9, 12, 14], ["5.0", 8, 10, 6]],
    columns=["a", "b", "c", "d"],
)

print(df)
print("---------------------------")
print(df.info())

Production :

      a  b   c   d
0  10.0  6   7   8
1   1.0  9  12  14
2   5.0  8  10   6
---------------------------
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 4 columns):
 #   Column  Non-Null Count  Dtype 
---  ------  --------------  ----- 
 0   a       3 non-null      object
 1   b       3 non-null      int64 
 2   c       3 non-null      int64 
 3   d       3 non-null      int64 
dtypes: int64(3), object(1)
memory usage: 224.0+ bytes
None

Remarquez le type de colonne 'a', qui est du type object. Nous allons convertir cet objet en float en utilisant les fonctions pd.to_numeric() et astype() dans Pandas.

Remarque
Ce tutoriel ne couvrira pas la fonction convert_objects() qui est dépréciée et supprimée.

Utilisez la méthode astype() pour convertir un objet en float dans les pandas

Les pandas fournissent la méthode astype() pour convertir une colonne en un type spécifique. Nous passons le paramètre float à la méthode et définissons le paramètre errors comme 'raise', ce qui signifie qu’il lèvera des exceptions pour les valeurs non valides. Exemple :

import pandas as pd

df = pd.DataFrame(
    [["10.0", 6, 7, 8], ["1.0", 9, 12, 14], ["5.0", 8, 10, 6]],
    columns=["a", "b", "c", "d"],
)

df["a"] = df["a"].astype(float, errors="raise")

print(df.info())

Production :

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 4 columns):
a    3 non-null float64
b    3 non-null int64
c    3 non-null int64
d    3 non-null int64
dtypes: float64(1), int64(3)
memory usage: 224.0 bytes

Utilisez la fonction to_numeric() pour convertir un objet en Float dans les pandas

La fonction Pandas to_numeric() peut être utilisée pour convertir une liste, une série, un tableau, ou un tuple en un type de données numérique, ce qui signifie un int signé, ou un int non signé et un float type. Elle possède également le paramètre errors pour lever des exceptions. Un exemple de conversion du type d’objet en float en utilisant to_numeric() est montré ci-dessous :

import pandas as pd

df = pd.DataFrame(
    [["10.0", 6, 7, 8], ["1.0", 9, 12, 14], ["5.0", 8, 10, 6]],
    columns=["a", "b", "c", "d"],
)

df["a"] = pd.to_numeric(df["a"], errors="coerce")

print(df.info())

Production :

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 4 columns):
a    3 non-null float64
b    3 non-null int64
c    3 non-null int64
d    3 non-null int64
dtypes: float64(1), int64(3)
memory usage: 224.0 bytes
Auteur: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Article connexe - Pandas DataFrame