Pandas'ta nasıl düzeltilir: dize kayan noktaya dönüştürülemiyor


Pandaları kullanırken karşılaşabileceğiniz yaygın bir hata:

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

Bu hata genellikle bir dizeyi pandalarda kayan konuma dönüştürmeye çalıştığınızda, dize aşağıdakilerden birini veya daha fazlasını içerdiğinde ortaya çıkar:

  • Boşluklar
  • Virgüller
  • Özel karakterler

Bu durumda, dizeyi kayan noktaya dönüştürmeden önce bu karakterleri dizeden kaldırmalısınız.

Aşağıdaki örnekte bu hatanın pratikte nasıl çözüleceği gösterilmektedir.

Hata nasıl yeniden oluşturulur?

Aşağıdaki pandalara sahip olduğumuzu varsayalım 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

Şimdi gelir sütununu bir dizeden kayan noktaya dönüştürmeye çalıştığımızı varsayalım:

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

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

Gelir sütununun dizelerinde dolar işareti bulunduğundan hata alıyoruz.

Hata nasıl düzeltilir?

Bu hatayı çözmenin yolu, dönüştürmeyi gerçekleştirmeden önce gelir sütunundaki dolar işaretlerini hiçbir şeyle değiştirmek için change() işlevini kullanmaktır:

 #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

Gelir sütununu bir dizeden kayan sütuna dönüştürebildiğimizi ve dönüştürmeyi yapmadan önce dolar işaretlerini kaldırdığımız için herhangi bir hata almadığımızı unutmayın.

Ek kaynaklar

Aşağıdaki eğitimlerde Python’daki diğer yaygın hataların nasıl düzeltileceği açıklanmaktadır:

Python’da Nasıl Düzeltilir: ‘numpy.ndarray’ nesnesi çağrılabilir değil
Nasıl düzeltilir: TypeError: ‘numpy.float64’ nesnesi çağrılabilir değil
Nasıl Onarılır: Tür Hatası: Beklenen Dize veya Bayt Nesnesi

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir