So beheben sie das problem in pandas: string kann nicht in float konvertiert werden


Ein häufiger Fehler, der bei der Verwendung von Pandas auftreten kann, ist:

 ValueError : could not convert string to float: '$400.42'

Dieser Fehler tritt normalerweise auf, wenn Sie versuchen, eine Zeichenfolge in Pandas in Float zu konvertieren, wenn die Zeichenfolge eines oder mehrere der folgenden Elemente enthält:

  • Die Räume
  • Kommas
  • Spezielle Charaktere

In diesem Fall müssen Sie diese Zeichen zunächst aus der Zeichenfolge entfernen, bevor Sie sie in eine Gleitkommazahl konvertieren.

Das folgende Beispiel zeigt, wie dieser Fehler in der Praxis behoben werden kann.

So reproduzieren Sie den Fehler

Angenommen, wir haben den folgenden Pandas-DataFrame:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' store ': ['A', 'B', 'C', 'D'],
                   ' revenue ': ['$400.42', '$100.18', '$243.75', '$194.22']})

#view DataFrame
print (df)

  store revenue
0 A $400.42
1 B $100.18
2 C $243.75
3D $194.22

#view data type of each column
print ( df.dtypes )

store object
revenue object
dtype:object

Nehmen wir nun an, wir versuchen, die Umsatzspalte von einer Zeichenfolge in eine Gleitkommazahl umzuwandeln:

 #attempt to convert 'revenue' from string to float
df[' revenue '] = df[' revenue ']. astype (float)

ValueError : could not convert string to float: '$400.42'

Wir erhalten eine Fehlermeldung, weil die Einkommensspalte in den Zeichenfolgen ein Dollarzeichen enthält.

So beheben Sie den Fehler

Die Möglichkeit, diesen Fehler zu beheben, besteht darin, die Funktion „replace()“ zu verwenden, um die Dollarzeichen in der Einkommensspalte durch nichts zu ersetzen, bevor die Konvertierung durchgeführt wird:

 #convert revenue column to float
df[' revenue '] = df[' revenue ']. apply ( lambda x: float(x. split ()[ 0 ]. replace (' $ ', '')))

#view updated DataFrame
print (df)

  store revenue
0 to 400.42
1 B 100.18
2 C 243.75
3 D 194.22

#view data type of each column
print ( df.dtypes )

store object
income float64
dtype:object

Beachten Sie, dass wir die Umsatzspalte von einer Zeichenfolge in eine Float-Spalte konvertieren können und keine Fehlermeldungen erhalten, da wir die Dollarzeichen vor der Konvertierung entfernt haben.

Zusätzliche Ressourcen

Die folgenden Tutorials erklären, wie Sie andere häufige Fehler in Python beheben:

So beheben Sie das Problem in Python: Das Objekt „numpy.ndarray“ kann nicht aufgerufen werden
So beheben Sie: TypeError: Das Objekt „numpy.float64“ kann nicht aufgerufen werden
So beheben Sie: Typfehler: Erwarteter String oder Bytes-Objekt

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert