Pandas – "ပိုင်ဆိုင်မှုအလိုက် အုပ်စုဖွဲ့ခြင်း" အတွက် ရိုးရှင်းသော ဖော်မြူလာ


ပန်ဒါများတွင် “ GROUP BY HAVING” SQL ကြေငြာချက်နှင့်ညီမျှသော အောက်ပါအခြေခံအထားအသိုကိုသုံးနိုင်သည်။

 df. groupby (' some_column '). filter ( lambda x: some condition)

အောက်ဖော်ပြပါနမူနာများသည် အောက်ပါ pandas DataFrame နှင့် လက်တွေ့တွင် ဤ syntax ကိုမည်သို့အသုံးပြုရမည်ကို ပြသသည် ။

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'B', 'B', 'B', 'C', 'C'],
                   ' position ': ['G', 'F', 'F', 'G', 'F', 'F', 'G', 'G'],
                   ' points ': [30, 22, 19, 14, 14, 11, 20, 28]})

#view DataFrame
print (df)

  team position points
0 AG 30
1 AF 22
2 FY 19
3 BG 14
4 BF 14
5 BF 11
6 GC 20
7 GC 28

ဥပမာ 1- Count ပါသော ပန်ဒါအုပ်စု

အောက်ပါကုဒ်သည် အဖွဲ့ ကော်လံရှိတန်ဖိုးအပေါ်အခြေခံ၍ အတန်းများအုပ်စုဖွဲ့နည်းကိုပြသပြီး 2 ထက်ကြီးသောအသင်းများကိုသာ စစ်ထုတ်ပါ-

 #group by team and filter for teams with count > 2
df. groupby (' team '). filter ( lambda x: len (x) > 2 )


        team position points
0 A G 30
1 A F 22
2 A F 19
3 B G 14
4 B F 14
5 B F 11

ဤအသင်းနှစ်သင်းစလုံးသည် နံပါတ် 2 ထက်ကြီးသောအသင်းဖြစ်သောကြောင့် “ A” သို့မဟုတ် “ B” ၏တန်ဖိုးရှိသောတန်းများကိုသာ ပြန်ပေးသည်ကို သတိပြုပါ။

ဥပမာ 2- ပျမ်းမျှပါရှိသော ပန်ဒါအုပ်စု

အောက်ပါကုဒ်သည် အဖွဲ့ ကော်လံရှိ တန်ဖိုးအပေါ်အခြေခံ၍ အတန်းများအုပ်စုဖွဲ့နည်းကိုပြသပြီး ပျမ်းမျှ အမှတ် တန်ဖိုး 20 ထက်ကြီးသောအသင်းများကိုသာ စစ်ထုတ်ပါ-

 #group by team and filter for teams with mean points > 20
df. groupby (' team '). filter ( lambda x: x[' points ']. mean () > 20 )

        team position points
0 A G 30
1 A F 22
2 A F 19
6 C G 20
7 C G 28

ဤအသင်းနှစ်သင်းသည် ပျမ်းမျှအမှတ်တန်ဖိုး 20 ထက်ကြီးသော အသင်းနှစ်သင်းဖြစ်သောကြောင့် “ A” သို့မဟုတ် “ C” ရှိသော အတန်းများကိုသာ ပြန်ပေးသည်ကို သတိပြုပါ။

ဥပမာ 3- အလုံးလိုက်ပါရှိသော ပန်ဒါအုပ်စု

အောက်ပါကုဒ်သည် Team ကော်လံရှိ တန်ဖိုးအလိုက် တန်းစီနည်းကို ပြသပြီး အမှတ် ပေါင်း 48 အတိအကျရှိသော အသင်းများကိုသာ စစ်ထုတ်ပါ။

 #group by team and filter for teams with sum of points equal to 48
df. groupby (' team '). filter ( lambda x: x[' points ']. sum () == 48 )

        team position points
6 C G 20
7 C G 28

ဤအသင်းသည် 48 နှင့် ညီမျှသော အမှတ်ပေါင်းဒ်ရှိသော တစ်ခုတည်းသောအသင်းဖြစ်သောကြောင့် “ C” ၏ အသင်းတန်ဖိုးရှိသော အတန်းများကိုသာ ပြန်ပေးသည်ကို သတိပြုပါ။

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

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

Pandas- ကော်လံတန်ဖိုးနှင့် ကိုက်ညီသော အတန်းများ၏ အညွှန်းကို ရယူပါ။
Pandas- သတ်မှတ်ထားသောစာကြောင်းပါရှိသော ကော်လံများကို မည်သို့ရွေးချယ်ရမည်နည်း။
Pandas- ကော်လံတွင် စာကြောင်းတစ်ခုပါရှိမရှိ စစ်ဆေးနည်း

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

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