Cara memperbaiki di pandas: tidak dapat mengubah string menjadi float


Kesalahan umum yang mungkin Anda temui saat menggunakan pandas adalah:

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

Kesalahan ini biasanya terjadi ketika Anda mencoba mengonversi string menjadi float di panda, ketika string berisi satu atau lebih hal berikut:

  • Spasi
  • Koma
  • Karakter spesial

Jika ini terjadi, Anda harus menghapus karakter ini terlebih dahulu dari string sebelum mengubahnya menjadi float.

Contoh berikut menunjukkan cara mengatasi kesalahan ini dalam praktiknya.

Bagaimana cara mereproduksi kesalahan tersebut

Misalkan kita memiliki panda DataFrame berikut:

 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

Sekarang misalkan kita mencoba mengubah kolom pendapatan dari string menjadi float:

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

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

Kami menerima kesalahan karena kolom pendapatan berisi tanda dolar di stringnya.

Bagaimana cara memperbaiki kesalahan tersebut

Cara mengatasi kesalahan ini adalah dengan menggunakan fungsi replace() untuk mengganti tanda dolar di kolom pendapatan dengan apa pun sebelum melakukan konversi:

 #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

Perhatikan bahwa kami dapat mengonversi kolom pendapatan dari string menjadi float dan kami tidak menerima kesalahan apa pun karena kami menghapus tanda dolar sebelum melakukan konversi.

Sumber daya tambahan

Tutorial berikut menjelaskan cara memperbaiki kesalahan umum lainnya dengan Python:

Cara Memperbaiki dengan Python: Objek ‘numpy.ndarray’ tidak dapat dipanggil
Cara Memperbaiki: TypeError: Objek ‘numpy.float64’ tidak dapat dipanggil
Cara Memperbaiki: Kesalahan Ketik: Objek String atau Bytes yang Diharapkan

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *