Pandas Convertem Strings em Tipo Numérico
-
pandas.to_numeric()
Método -
Converter valores de String de Pandas DataFrame para Tipo Numérico Utilizando o
pandas.to_numeric()
Método - Converte os valores de String de Pandas DataFrame para Tipo Numérico com outros caracteres no mesmo
Este tutorial explica como podemos converter valores de string de Pandas DataFrame para tipo numérico utilizando o 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
Vamos utilizar o exemplo acima para demonstrar como podemos alterar os valores de DataFrame para o tipo numérico.
pandas.to_numeric()
Método
Sintaxe
pandas.to_numeric(arg, errors="raise", downcast=None)
Converte o argumento passado como arg
para o tipo numérico. Por defeito, o arg
será convertido para int64
ou float64
. Podemos definir o valor para o parâmetro downcast
para converter o arg
para outros tipos de dados.
Converter valores de String de Pandas DataFrame para Tipo Numérico Utilizando o pandas.to_numeric()
Método
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)
Resultado:
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
Converte o tipo de dados da coluna Cost
da coluna items_df
de object
para int64
.
Converte os valores de String de Pandas DataFrame para Tipo Numérico com outros caracteres no mesmo
Se quisermos converter uma coluna para um tipo numérico com valores com alguns caracteres, recebemos um erro a dizer ValueError: Unable to parse string
. Nesses casos, podemos remover todos os caracteres não numéricos e depois realizar a conversão do 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)
Resultado:
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
Remove o carácter $
anexado com os valores da coluna Cost
e depois converte estes valores para o tipo numérico utilizando o método pandas.to_numeric()
.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn