Objekt in Float konvertieren in Pandas

Manav Narula 30 Januar 2023
  1. Verwenden der Methode astype() zum Konvertieren von Objekten in Fließkommazahlen in Pandas
  2. Verwenden der Funktion to_numeric() zum Konvertieren von Objekten in Fließkommazahlen in Pandas
Objekt in Float konvertieren in Pandas

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.

Hinweis
Dieses Tutorial behandelt nicht die Funktion 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
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Verwandter Artikel - Pandas DataFrame