HOWTO · Pandas
Objekt in Float konvertieren in Pandas
Dieses Tutorial demonstriert, wie man eine Spalte vom Typ Objekt in einem Pandas-Datenframe in einen Float konvertiert
Auf dieser Seite
In diesem Tutorial konzentrieren wir uns auf die Konvertierung einer objektartigen Spalte in float in Pandas. Eine objektartige Spalte enthält eine Zeichenkette oder eine Mischung aus anderen Typen, während float dezimale Werte enthält. Wir werden in diesem Artikel mit dem folgenden DataFrame arbeiten.
import pandas as pd
df = pd.DataFrame(
[["10.0", 6, 7, 8], ["1.0", 9, 12, 14], ["5.0", 8, 10, 6]],
columns=["a", "b", "c", "d"],
)
print(df)
print("---------------------------")
print(df.info())
Ausgabe:
a b c d
0 10.0 6 7 8
1 1.0 9 12 14
2 5.0 8 10 6
---------------------------
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 4 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 a 3 non-null object
1 b 3 non-null int64
2 c 3 non-null int64
3 d 3 non-null int64
dtypes: int64(3), object(1)
memory usage: 224.0+ bytes
None
Beachten Sie den Typ der Spalte 'a', die vom Typ object ist. Wir werden dieses Objekt mit den Funktionen pd.to_numeric() und astype() in Pandas in float konvertieren.
convert_objects(), die veraltet ist und entfernt wurde.Verwenden der Methode astype() zum Konvertieren von Objekten in Fließkommazahlen in Pandas
Pandas bietet die Methode astype(), um eine Spalte in einen bestimmten Typ zu konvertieren. Wir übergeben float an die Methode und setzen den Parameter errors auf 'raise', was bedeutet, dass sie bei ungültigen Werten Exceptions auslösen wird. Beispiel:
import pandas as pd
df = pd.DataFrame(
[["10.0", 6, 7, 8], ["1.0", 9, 12, 14], ["5.0", 8, 10, 6]],
columns=["a", "b", "c", "d"],
)
df["a"] = df["a"].astype(float, errors="raise")
print(df.info())
Ausgabe:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 4 columns):
a 3 non-null float64
b 3 non-null int64
c 3 non-null int64
d 3 non-null int64
dtypes: float64(1), int64(3)
memory usage: 224.0 bytes
Verwenden der Funktion to_numeric() zum Konvertieren von Objekten in Fließkommazahlen in Pandas
Die Pandas-Funktion to_numeric() kann verwendet werden, um eine Liste, eine Serie, ein Array oder ein Tupel in einen numerischen Datentyp zu konvertieren, d.h. in vorzeichenbehaftete oder vorzeichenlose int- und float-Typen. Sie hat auch den Parameter errors, um Ausnahmen auszulösen. Ein Beispiel für die Konvertierung des Objekttyps in Float mit to_numeric() ist unten dargestellt:
import pandas as pd
df = pd.DataFrame(
[["10.0", 6, 7, 8], ["1.0", 9, 12, 14], ["5.0", 8, 10, 6]],
columns=["a", "b", "c", "d"],
)
df["a"] = pd.to_numeric(df["a"], errors="coerce")
print(df.info())
Ausgabe:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 4 columns):
a 3 non-null float64
b 3 non-null int64
c 3 non-null int64
d 3 non-null int64
dtypes: float64(1), int64(3)
memory usage: 224.0 bytes