Wie man den Datentyp von Spalten in Pandas ändert
-
to_numeric
Methode zur Umwandlung von Spalten in numerische Werte in Pandas -
astype()
Methode um einen Typ in einen beliebigen anderen Datentyp zu konvertieren -
infer_objects()
Methode um den Datentyp von Spalten in einen spezifischeren Typ zu konvertieren
Wir werden die Methode zum Ändern des Datentyps von Spalten in Pandas DataFrame
und Optionen wie to_numeric
, as_type
und infer_objects
vorstellen. Wir werden auch besprechen, wie die downcasting
-Option mit to_numeric
verwendet werden kann.
to_numeric
Methode zur Umwandlung von Spalten in numerische Werte in Pandas
to_numeric()
ist der beste Weg, eine oder mehrere Spalten eines DataFrame
in numerische Werte umzuwandeln. Dabei wird auch versucht, nicht-numerische Objekte (wie Zeichenketten) in ganze Zahlen oder Fließkommazahlen umzuwandeln. Wenn einige Werte nicht in einen numerischen Typ konvertiert werden können, erlaubt uns to_numeric()
, nicht-numerische Werte zu zwingen, NaN
zu sein.
Beispiel-Codes:
# python 3.x
import pandas as pd
s = pd.Series(["12", "12", "4.7", "asad", "3.0"])
print(s)
print("------------------------------")
print(pd.to_numeric(s, errors="coerce"))
Ausgabe:
0 12
1 12
2 4.7
3 asad
4 3.0
dtype: object
------------------------------
0 12.0
1 12.0
2 4.7
3 NaN
4 3.0
dtype: float64
to_numeric()
gibt uns standardmäßig entweder einen int64
oder float64
dtype. Wir können eine Option verwenden, um entweder auf integer
, signed
, unsigned
oder float
zu casten:
# python 3.x
import pandas as pd
s = pd.Series([-3, 1, -5])
print(s)
print(pd.to_numeric(s, downcast="integer"))
Ausgabe:
0 -3
1 1
2 -5
dtype: int64
0 -3
1 1
2 -5
dtype: int8
astype()
Methode um einen Typ in einen beliebigen anderen Datentyp zu konvertieren
Die astype()
Methode ermöglicht es uns, den dtype, den wir konvertieren wollen, explizit zu benennen. Wir können einen Datentyp in einen anderen konvertieren, indem wir den Parameter innerhalb der [astype()
]-Methode übergeben.
Betrachten Sie den folgenden Code:
# python 3.x
import pandas as pd
c = [["x", "1.23", "14.2"], ["y", "20", "0.11"], ["z", "3", "10"]]
df = pd.DataFrame(c, columns=["first", "second", "third"])
print(df)
df[["second", "third"]] = df[["second", "third"]].astype(float)
print("Converting..................")
print("............................")
print(df)
Ausgabe:
first second third
0 x 1.23 14.2
1 y 20 0.11
2 z 3 10
Converting..................
............................
first second third
0 x 1.23 14.20
1 y 20.00 0.11
2 z 3.00 10.00
infer_objects()
Methode um den Datentyp von Spalten in einen spezifischeren Typ zu konvertieren
infer_objects()
Methode, die mit Version 0.21.0 des Pandas eingeführt wurde, um Spalten eines dataFrame
in einen spezifischeren Datentyp zu konvertieren (weiche Konvertierungen).
Betrachten Sie den folgenden Code:
# python 3.x
import pandas as pd
df = pd.DataFrame({"a": [3, 12, 5], "b": [3.0, 2.6, 1.1]}, dtype="object")
print(df.dtypes)
df = df.infer_objects()
print("Infering..................")
print("............................")
print(df.dtypes)
Ausgabe:
a object
b object
dtype: object
Infering..................
............................
a int64
b float64
dtype: object