Pandas converte la stringa in tipo numerico
-
Metodo
pandas.to_numeric()
-
Converti i valori stringa di Pandas DataFrame in un tipo numerico usando il metodo
pandas.to_numeric()
- Converti valori stringa di Pandas DataFrame in tipo numerico con altri caratteri in esso
Questo tutorial spiega come convertire i valori stringa di Pandas DataFrame in tipo numerico usando il metodo 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)
Produzione:
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
Useremo l’esempio sopra per dimostrare come possiamo cambiare i valori di DataFrame nel tipo numerico.
Metodo pandas.to_numeric()
Sintassi
pandas.to_numeric(arg, errors="raise", downcast=None)
Converte l’argomento passato come arg
nel tipo numerico. Per impostazione predefinita, l’arg
verrà convertito in int64
o float64
. Possiamo impostare il valore del parametro downcast
per convertire arg
in altri tipi di dati.
Converti i valori stringa di Pandas DataFrame in un tipo numerico usando il metodo 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)
Produzione:
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 il tipo di dati della colonna Cost
di items_df
da object
a int64
.
Converti valori stringa di Pandas DataFrame in tipo numerico con altri caratteri in esso
Se vogliamo convertire una colonna in un tipo numerico con valori con alcuni caratteri, otteniamo un errore che dice ValueError: Unable to parse string
. In questi casi, possiamo rimuovere tutti i caratteri non numerici e quindi eseguire la conversione del 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)
Produzione:
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
Rimuove il carattere $
allegato ai valori della colonna Cost
e quindi converte questi valori nel tipo numerico utilizzando il metodo pandas.to_numeric()
.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn