Wie man den Datentyp von Spalten in Pandas ändert

Asad Riaz 25 Juni 2020
  1. to_numeric Methode zur Umwandlung von Spalten in numerische Werte in Pandas
  2. astype() Methode um einen Typ in einen beliebigen anderen Datentyp zu konvertieren
  3. infer_objects() Methode um den Datentyp von Spalten in einen spezifischeren Typ zu konvertieren
Wie man den Datentyp von Spalten in Pandas ändert

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

Verwandter Artikel - Pandas Data Type