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- ကြံစည်ရန် ကိန်းဂဏာန်းဒေတာမရှိပါ။

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

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