Pandas Zeichenkette in numerischen Typ umwandeln
-
Methode
pandas.to_numeric()
-
Konvertieren von Zeichenkette-Werten eines Pandas DataFrame in den numerischen Typ mit der Methode
pandas.to_numeric()
- Konvertieren von Zeichenkette-Werten des Pandas DataFrame in den numerischen Typ mit anderen Zeichen darin
Dieses Tutorial erklärt, wie wir Zeichenkette-Werte von Pandas DataFrame in den numerischen Typ konvertieren können, indem wir die Methode pandas.to_numeric()
verwenden.
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)
Ausgabe:
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
Anhand des obigen Beispiels wollen wir demonstrieren, wie wir die Werte eines DataFrames in den numerischen Typ umwandeln können.
Methode pandas.to_numeric()
Syntax
pandas.to_numeric(arg, errors="raise", downcast=None)
Sie konvertiert das als arg
übergebene Argument in den numerischen Typ. Standardmäßig wird das arg
in int64
oder float64
konvertiert. Wir können den Wert für den Parameter downcast
setzen, um das arg
in andere Datentypen zu konvertieren.
Konvertieren von Zeichenkette-Werten eines Pandas DataFrame in den numerischen Typ mit der Methode 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)
Ausgabe:
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
Sie konvertiert den Datentyp der Spalte Cost
des items_df
von object
in int64
.
Konvertieren von Zeichenkette-Werten des Pandas DataFrame in den numerischen Typ mit anderen Zeichen darin
Wenn wir eine Spalte mit Werten, die einige Zeichen enthalten, in einen numerischen Typ konvertieren wollen, erhalten wir die Fehlermeldung ValueError: Unable to parse string
. In solchen Fällen können wir alle nicht-numerischen Zeichen entfernen und dann eine Typkonvertierung durchführen.
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)
Ausgabe:
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
Das Zeichen $
, das den Werten der Spalte Cost
angehängt ist, wird entfernt und dann werden diese Werte mit der Methode pandas.to_numeric()
in den numerischen Typ konvertiert.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn