Pandas Convertir une chaîne de caractères en un type numérique
-
Méthode
pandas.to_numeric()
-
Convertir les valeurs des chaînes de caractères de Pandas DataFrame en type numérique en utilisant la méthode
pandas.to_numeric()
- Conversion des valeurs de chaîne de caractères de Pandas DataFrame en type numérique avec d’autres caractères
Ce tutoriel explique comment nous pouvons convertir des valeurs de chaîne de Pandas DataFrame en type numérique en utilisant la méthode pandas.to_numeric()
.
import pandas as pd
items_df = pd.DataFrame(
{
"Id": [302, 504, 708, 103, 343, 565],
"Name": ["Watch", "Camera", "Phone", "Shoes", "Laptop", "Bed"],
"Cost": ["300", "400", "350", "100", "1000", "400"],
}
)
print(items_df)
Production :
Id Name Cost
0 302 Watch 300
1 504 Camera 400
2 708 Phone 350
3 103 Shoes 100
4 343 Laptop 1000
5 565 Bed 400
Nous allons utiliser l’exemple ci-dessus pour démontrer comment nous pouvons changer les valeurs de DataFrame en type numérique.
Méthode pandas.to_numeric()
Syntaxe
pandas.to_numeric(arg, errors="raise", downcast=None)
Il convertit l’argument passé comme arg
en type numérique. Par défaut, l’argument arg
sera converti en int64
ou float64
. Nous pouvons définir la valeur du paramètre downcast
pour convertir le arg
en d’autres types de données.
Convertir les valeurs des chaînes de caractères de Pandas DataFrame en type numérique en utilisant la méthode pandas.to_numeric()
import pandas as pd
items_df = pd.DataFrame(
{
"Id": [302, 504, 708, 103, 343, 565],
"Name": ["Watch", "Camera", "Phone", "Shoes", "Laptop", "Bed"],
"Cost": ["300", "400", "350", "100", "1000", "400"],
}
)
print("The items DataFrame is:")
print(items_df, "\n")
print("Datatype of Cost column before type conversion:")
print(items_df["Cost"].dtypes, "\n")
items_df["Cost"] = pd.to_numeric(items_df["Cost"])
print("Datatype of Cost column after type conversion:")
print(items_df["Cost"].dtypes)
Production :
The items DataFrame is:
Id Name Cost
0 302 Watch 300
1 504 Camera 400
2 708 Phone 350
3 103 Shoes 100
4 343 Laptop 1000
5 565 Bed 400
Datatype of Cost column before type conversion:
object
Datatype of Cost column after type conversion:
int64
Il convertit le type de données de la colonne Cost
du items_df
de object
à int64
.
Conversion des valeurs de chaîne de caractères de Pandas DataFrame en type numérique avec d’autres caractères
Si nous voulons convertir une colonne en un type numérique avec des valeurs contenant certains caractères, nous obtenons une erreur intitulée ValueError: Unable to parse string
. Dans ce cas, nous pouvons supprimer tous les caractères non numériques et effectuer la conversion de type.
import pandas as pd
items_df = pd.DataFrame(
{
"Id": [302, 504, 708, 103, 343, 565],
"Name": ["Watch", "Camera", "Phone", "Shoes", "Laptop", "Bed"],
"Cost": ["$300", "$400", "$350", "$100", "$1000", "$400"],
}
)
print("The items DataFrame is:")
print(items_df, "\n")
print("Datatype of Cost column before type conversion:")
print(items_df["Cost"].dtypes, "\n")
items_df["Cost"] = pd.to_numeric(items_df["Cost"].str.replace("$", ""))
print("Datatype of Cost column after type conversion:")
print(items_df["Cost"].dtypes, "\n")
print("DataFrame after Type Conversion:")
print(items_df)
Production :
The items DataFrame is:
Id Name Cost
0 302 Watch $300
1 504 Camera $400
2 708 Phone $350
3 103 Shoes $100
4 343 Laptop $1000
5 565 Bed $400
Datatype of Cost column before type conversion:
object
Datatype of Cost column after type conversion:
int64
DataFrame after Type Conversion:
Id Name Cost
0 302 Watch 300
1 504 Camera 400
2 708 Phone 350
3 103 Shoes 100
4 343 Laptop 1000
5 565 Bed 400
Il supprime le caractère $
attaché aux valeurs de la colonne Cost
et convertit ensuite ces valeurs en type numérique en utilisant la méthode pandas.to_numeric()
.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn