Pandas Convertir Cadena a Numérico Tipo
-
Método
pandas.to_numeric()
-
Convertir valores de cadena de Pandas DataFrame a tipo numérico utilizando el método
pandas.to_numeric()
- Convertir valores de cadena de Pandas DataFrame a tipo numérico con otros caracteres
Este tutorial explica cómo podemos convertir valores de cadena de Pandas DataFrame a tipo numérico utilizando el método 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)
Resultado:
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
Utilizaremos el ejemplo anterior para demostrar cómo podemos cambiar los valores del DataFrame al tipo numérico.
Método pandas.to_numeric()
Sintaxis
pandas.to_numeric(arg, errors="raise", downcast=None)
Convierte el argumento pasado como arg
a tipo numérico. Por defecto, el arg
será convertido a int64
o float64
. Podemos establecer el valor del parámetro downcast
para convertir el arg
a otros tipos de datos.
Convertir valores de cadena de Pandas DataFrame a tipo numérico utilizando el método 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)
Producción :
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
Convierte el tipo de datos de la columna Cost
del items_df
de object
a int64
.
Convertir valores de cadena de Pandas DataFrame a tipo numérico con otros caracteres
Si queremos convertir una columna a un tipo numérico con valores con algunos caracteres en ella, obtenemos un error diciendo ValueError: Unable to parse string
. En estos casos, podemos eliminar todos los caracteres no numéricos y luego realizar la conversión de tipo.
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)
Producción :
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
Elimina el carácter $
adjunto a los valores de la columna Cost
y luego convierte estos valores al tipo numérico utilizando el método pandas.to_numeric()
.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn