ပြင်ဆင်နည်း- typeerror–: 'str' နှင့် 'int' အတွက် ပံ့ပိုးမထားသော operand အမျိုးအစားများ


Python ကိုအသုံးပြုရာတွင် သင်ကြုံတွေ့ရနိုင်သည့် အမှားတစ်ခုမှာ-

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

string variable နှင့် numeric variable ဖြင့် နုတ်ရန် ကြိုးပမ်းသောအခါ ဤအမှားသည် ဖြစ်ပေါ်လာပါသည်။

အောက်ဖော်ပြပါ ဥပမာသည် ဤအမှားကို လက်တွေ့ဖြေရှင်းနည်းကို ပြသထားသည်။

အမှားကို ဘယ်လိုပြန်ထုတ်မလဲ။

ကျွန်ုပ်တို့တွင် အောက်ပါ ပန်ဒါ 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

ယခု ကျွန်ုပ်တို့သည် point_ainst ကော်လံကို point_for ကော်လံမှ နုတ်ရန် ကြိုးစားသည်ဆိုပါစို့။

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

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

Point_for ကော်လံသည် မျဥ်းတစ်ကြောင်းဖြစ်သောကြောင့် Point_ainst ကော်လံသည် ဂဏန်းများဖြစ်သောကြောင့် TypeError တစ်ခုဖြစ်သည်။

အနုတ်တစ်ခုလုပ်ဆောင်ရန်၊ ကော်လံနှစ်ခုစလုံးသည် ဂဏန်းဖြစ်ရပါမည်။

အမှားကိုဘယ်လိုပြင်မလဲ။

ဤအမှားကိုဖြေရှင်းရန်၊ နုတ်ခြင်းကိုမလုပ်ဆောင်မီ point_for ကော်လံကို ကိန်းပြည့်အဖြစ်သို့ ပြောင်းရန် .astype(int) ကို အသုံးပြုနိုင်ပါသည်။

 #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

ကျွန်ုပ်တို့နုတ်ထွက်ရန်အသုံးပြုသောကော်လံနှစ်ခုသည် ဂဏန်းကော်လံများဖြစ်သောကြောင့် ကျွန်ုပ်တို့ အမှားအယွင်းတစ်ခုလက်ခံရရှိခြင်းမရှိကြောင်း သတိပြုပါ။

ထပ်လောင်းအရင်းအမြစ်များ

အောက်ဖော်ပြပါ သင်ခန်းစာများသည် Python ရှိ အခြားသော ဘုံအမှားများကို မည်သို့ပြင်ဆင်ရမည်ကို ရှင်းပြသည်-

Pandas တွင် KeyError ကိုဘယ်လိုပြင်မလဲ။
ပြင်ဆင်နည်း- ValueError- float NaN ကို int အဖြစ်သို့ ပြောင်းလဲ၍မရပါ။
ပြုပြင်နည်း- တန်ဖိုးအမှား- Operands များကို ပုံသဏ္ဍာန်များဖြင့် ထုတ်လွှင့်၍မရပါ။

မှတ်ချက်တစ်ခုထည့်ပါ။

သင့် email လိပ်စာကို ဖော်ပြမည် မဟုတ်ပါ။ လိုအပ်သော ကွက်လပ်များကို * ဖြင့်မှတ်သားထားသည်