Pandas တွင် ပြုပြင်နည်း- စီးရီးတစ်ခု၏ အမှန်တရားတန်ဖိုးသည် မရေရာပါ။
Python တွင် သင်ကြုံတွေ့ရသော အမှားတစ်ခုမှာ-
ValueError : The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(),
a.any() or a.all().
စကားလုံးများ နှင့် နှင့် သို့မဟုတ် စာလုံးများကို အသုံးပြုခြင်းအစား & and | အော်ပရေတာများ။
ဤသင်ခန်းစာတွင် ဤအမှားကို လက်တွေ့ဖြေရှင်းနည်းကို ရှင်းပြထားသည်။
အမှားကို ဘယ်လိုပြန်ထုတ်မလဲ။
ကျွန်ုပ်တို့သည် အောက်ပါ ပန်ဒါ DataFrame ကို ဖန်တီးသည်ဆိုပါစို့။
import pandas as pd
#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
' points ': [18, 22, 19, 14, 14, 11, 20, 28],
' assists ': [5, 7, 7, 9, 12, 9, 9, 4],
' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]})
#view DataFrame
print (df)
team points assists rebounds
0 A 18 5 11
1 to 22 7 8
2 A 19 7 10
3 A 14 9 6
4 B 14 12 6
5 B 11 9 5
6 B 20 9 9
7 B 28 4 12
ယခု အသင်း “ A” နှင့် ညီမျှသည့် အတန်းများကို စစ်ထုတ်ရန် ကြိုးစားနေပြီး အမှတ် 20 ထက်နည်းသည် ဆိုပါစို့။
#attempt to filter DataFrame
df[(df[' team '] == ' A ') and (df[' points '] < 20 )]
ValueError : The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(),
a.any() or a.all().
သို့မဟုတ် အသင်း “ A” နှင့် ညီမျှသည့် အတန်းများ သို့မဟုတ် အမှတ် 20 ထက်နည်းသော အတန်းများကို စစ်ထုတ်ရန် ကြိုးစားသည်ဆိုပါစို့။
#attempt to filter DataFrame
df[(df[' team '] == ' A ') or (df[' points '] < 20 )]
ValueError : The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(),
a.any() or a.all().
ဇာတ်လမ်းနှစ်ရပ်စလုံးတွင်၊ စီးရီးတစ်ခု၏ အမှန်တရားတန်ဖိုးသည် မရှင်းလင်းကြောင်းပြောသော အမှားတစ်ခုရှိသည်။
အမှားကိုဘယ်လိုပြင်မလဲ။
စစ်ထုတ်သည့်အခါ ဤအမှားကို ရှောင်ရှားရန်၊ ကျွန်ုပ်တို့သည် & and | ကို အသုံးပြုကြောင်း သေချာရန် လိုအပ်ပါသည်။ ဒြပ်စင်။ အော်ပရေတာများ။
ဥပမာအားဖြင့်၊ အဖွဲ့ “ A” နှင့် အမှတ် 20 အောက်ရှိသော အတန်းများကို စစ်ထုတ်ရန် အောက်ပါကုဒ်ကို အသုံးပြုနိုင်ပါသည်။
#filter DataFrame
df[(df[' team '] == ' A ') & (df[' points '] < 20 )]
team points assists rebounds
0 A 18 5 11
2 A 19 7 10
3 A 14 9 6
သို့မဟုတ် အသင်း “ A” နှင့် ညီမျှသည့် အတန်းများကို စစ်ထုတ်ရန် သို့မဟုတ် အမှတ် 20 ထက်နည်းသော အတန်းများကို စစ်ထုတ်ရန် အောက်ပါကုဒ်ကို အသုံးပြုနိုင်သည်။
#filter DataFrame
df[(df[' team '] == ' A ') | (df[' points '] < 20 )]
team points assists rebounds
0 A 18 5 11
1 to 22 7 8
2 A 19 7 10
3 A 14 9 6
4 B 14 12 6
5 B 11 9 5
& နှင့် | ကိုအသုံးပြုထားသောကြောင့် အခြေအနေနှစ်ခုစလုံးတွင် အမှားအယွင်းတစ်ခုမရရှိပါ။ ဒြပ်စင်။ အော်ပရေတာများ။
မှတ်ချက် – အခြေအနေများစွာဖြင့် ပန်ဒါဒေတာဘောင်ကို စစ်ထုတ်သည့်အခါ တစ်ဦးချင်းအခြေအနေတစ်ခုစီတွင် ကွင်းစကွင်းစများ ထည့်သွင်းရန် အရေးကြီးပါသည်၊ မဟုတ်ပါက သင်သည် အမှားအယွင်းတစ်ခု ရရှိမည်ဖြစ်သည်။
ထပ်လောင်းအရင်းအမြစ်များ
အောက်ဖော်ပြပါ သင်ခန်းစာများသည် Python ရှိ အခြားသော ဘုံအမှားများကို မည်သို့ပြင်ဆင်ရမည်ကို ရှင်းပြသည်-
ပြင်ဆင်နည်း- “ ပန်ဒါများ” မော်ဂျူးတွင် “ ဒေတာဘောင်” ရည်ညွှန်းချက် မရှိပါ။
Pandas တွင် ပြင်ဆင်နည်း- SettingWithCopyWarning
Pandas တွင် ပြုပြင်နည်း- TypeError- ကြံစည်ရန် ကိန်းဂဏာန်းဒေတာမရှိပါ။