Nasıl düzeltilir: typeerror: – için desteklenmeyen işlenen türleri: 'str' ve 'int'


Python kullanırken karşılaşabileceğiniz bir hata:

 TypeError : unsupported operand type(s) for -: 'str' and 'int'

Bu hata, bir dize değişkeni ve bir sayısal değişkenle çıkarma işlemi gerçekleştirmeye çalıştığınızda ortaya çıkar.

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 ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'],
                   ' points_for ': ['18', '22', '19', '14', '14', '11', '20', '28'],
                   ' points_against ': [5, 7, 17, 22, 12, 9, 9, 4]})

#view DataFrame
print (df)

  team points_for points_against
0 to 18 5
1 B 22 7
2 C 19 17
3 D 14 22
4 E 14 12
5 F 11 9
6 G 20 9
7:28 a.m. 4

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

team object
points_for object
points_against int64
dtype:object

Şimdi, point_against sütununu point_for sütunundan çıkarmaya çalıştığımızı varsayalım:

 #attempt to perform subtraction
df[' diff '] = df. points_for - df. points_against

TypeError : unsupported operand type(s) for -: 'str' and 'int'

Bir TypeError alıyoruz çünkü point_for sütunu bir dize, point_against sütunu ise sayısal.

Çıkarma işlemi gerçekleştirmek için her iki sütunun da sayısal olması gerekir.

Hata nasıl düzeltilir?

Bu hatayı çözmek için, çıkarma işlemini gerçekleştirmeden önce point_for sütununu bir tamsayıya dönüştürmek için .astype(int) komutunu kullanabiliriz:

 #convert points_for column to integer
df[' points_for '] = df[' points_for ']. astype (int)

#perform subtraction
df[' diff '] = df. points_for - df. points_against

#view updated DataFrame
print (df)

  team points_for points_against diff
0 A 18 5 13
1 B 22 7 15
2 C 19 17 2
3 D 14 22 -8
4 E 14 12 2
5 F 11 9 2
6 G 20 9 11
7:28 4 24

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

team object
points_for int32
points_against int64
diff int64
dtype:object

Çıkarma işlemi için kullandığımız iki sütunun sayısal sütunlar olması nedeniyle 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:

Pandas’ta KeyError Nasıl Düzeltilir
Nasıl düzeltilir? ValueError: float NaN int’ye dönüştürülemiyor
Nasıl düzeltilir? ValueError: İşlenenler şekillerle yayınlanamadı

Yorum ekle

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