Pandas groupby တွင် လုပ်ဆောင်ချက်တစ်ခုကို မည်သို့အသုံးပြုရမည်နည်း။


groupby() နှင့် apply() လုပ်ဆောင်ချက်များကို pandas DataFrame တွင် အတူတကွအသုံးပြုရန် အောက်ပါအခြေခံ syntax ကို သင်အသုံးပြုနိုင်သည်-

 df. groupby (' var1 '). apply ( lambda x: some function)

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

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   ' points_for ': [18, 22, 19, 14, 11, 20, 28],
                   ' points_against ': [14, 21, 19, 14, 12, 20, 21]})

#view DataFrame
print (df)

  team points_for points_against
0 to 18 14
1 To 22 21
2 A 19 19
3 B 14 14
4 B 11 12
5 B 20 20
6 B 28 21

ဥပမာ 1- ဆွေမျိုးကြိမ်နှုန်းများကိုရှာဖွေရန် groupby() ကိုသုံး၍ အသုံးချပါ()

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

 #find relative frequency of each team name in DataFrame
df. groupby (' team '). apply ( lambda x:x[' team ']. count ()/ df.shape [0])

team
A 0.428571
B 0.571429
dtype:float64

ရလဒ်အရ၊ အသင်း A သည် အတန်းအားလုံး၏ 42.85% တွင် ပေါ်လာပြီး အသင်း B သည် အတန်းအားလုံး၏ 57.14% တွင် ပေါ်လာသည်ကို ကျွန်ုပ်တို့တွေ့မြင်နိုင်ပါသည်။

ဥပမာ 2- အများဆုံးတန်ဖိုးများကိုရှာရန် groupby() နှင့် apply() ကိုသုံးပါ။

အောက်ပါကုဒ်သည် အဖွဲ့တစ်ခုစီအတွက် အများဆုံး “points_for” တန်ဖိုးများကို ရှာဖွေရန် groupby( ) နှင့် apply() လုပ်ဆောင်ချက်များကို မည်သို့အသုံးပြုရမည်ကို ပြသသည်-

 #find max "points_for" values for each team
df. groupby (' team '). apply ( lambda x:x[' points_for ']. max ())

team
At 22
B28
dtype: int64

ရလဒ်အရ အသင်း A မှ ရမှတ် အများဆုံး ရမှတ် 22 မှတ်ဖြစ်ပြီး အသင်း B က ရမှတ် အများဆုံး 28 မှတ် ဖြစ်သည် ။

ဥပမာ 3- စိတ်ကြိုက်တွက်ချက်မှုပြုလုပ်ရန် groupby() နှင့် apply() ကိုသုံးပါ။

အဖွဲ့တစ်ခုစီအတွက် “ points_for” နှင့် “ points_against” အကြား ပျမ်းမျှကွာခြားချက်ကို ရှာဖွေရန် အောက်ပါကုဒ်သည် groupby( ) နှင့် apply() လုပ်ဆောင်ချက်များကို ပြသသည်-

 #find max "points_for" values for each team
df. groupby (' team '). apply ( lambda x: (x[' points_for '] - x[' points_against ']). mean ())

team
A 1.666667
B 1.500000
dtype:float64

ရလဒ်များမှ၊ “ အမှတ်များအတွက်” နှင့် “ ဆန့်ကျင်ဘက်ရမှတ်” အကြား ပျမ်းမျှကွာခြားချက်မှာ အသင်း A အတွက် 1.67 နှင့် အသင်း B အတွက် 1.50 ဖြစ်သည်ကို ကျွန်ုပ်တို့တွေ့မြင်နိုင်ပါသည်။

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

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

Pandas တွင် GroupBy ပေါင်းစည်းနည်း
Pandas တွင် Groupby နှင့် Plot ကိုအသုံးပြုနည်း
Pandas ရှိ GroupBy ကို အသုံးပြု၍ ထူးခြားသောတန်ဖိုးများကို ရေတွက်နည်း

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

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