Come risolvere il problema in panda: impossibile convertire la stringa in float


Un errore comune che potresti riscontrare quando usi i panda è:

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

Questo errore si verifica in genere quando si tenta di convertire una stringa in float in Pandas, quando la stringa contiene uno o più dei seguenti elementi:

  • Gli spazi
  • Virgole
  • Personaggi speciali

Quando ciò accade, devi prima rimuovere questi caratteri dalla stringa prima di convertirla in float.

L’esempio seguente mostra come risolvere questo errore nella pratica.

Come riprodurre l’errore

Supponiamo di avere i seguenti panda 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

Supponiamo ora di provare a convertire la colonna revenue da stringa a float:

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

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

Riceviamo un errore perché la colonna del reddito contiene il simbolo del dollaro nelle stringhe.

Come correggere l’errore

Il modo per risolvere questo errore è utilizzare la funzione replace() per sostituire i simboli del dollaro nella colonna del reddito con nulla prima di eseguire la conversione:

 #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

Tieni presente che siamo in grado di convertire la colonna delle entrate da una stringa a un valore float e non riceviamo alcun errore poiché abbiamo rimosso i simboli del dollaro prima di eseguire la conversione.

Risorse addizionali

I seguenti tutorial spiegano come correggere altri errori comuni in Python:

Come risolvere il problema in Python: l’oggetto ‘numpy.ndarray’ non è richiamabile
Come risolvere il problema: TypeError: l’oggetto “numpy.float64” non è richiamabile
Come risolvere il problema: Errore di tipo: oggetto stringa o byte previsto

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *