Pandas- nlargest() ဖြင့် groupby အသုံးပြုနည်း


Pandas DataFrame ရှိ အုပ်စုအလိုက် n အကြီးဆုံးတန်ဖိုးများကိုပြသရန် အောက်ပါ syntax ကို သင်အသုံးပြုနိုင်သည်-

 #display two largest values by group
df. groupby (' group_var ')[' values_var ']. nlargest ( 2 )

ပန်ဒါများ DataFrame ရှိ အုပ်စုတစ်ခုစီအတွက် n အကြီးဆုံးတန်ဖိုးများပေါ်တွင် အချို့သောလုပ်ဆောင်ချက်များ (ပေါင်းလဒ်ယူခြင်းကဲ့သို့) ဆောင်ရွက်ရန် အောက်ပါ syntax ကို သင်အသုံးပြုနိုင်သည်-

 #find sum of two largest values by group
df. groupby (' group_var ')[' values_var ']. apply ( lambda grp: grp.nlargest ( 2 ) .sum ())

အောက်ဖော်ပြပါနမူနာများသည် အောက်ပါ pandas DataFrame ဖြင့် လက်တွေ့တွင် နည်းလမ်းတစ်ခုစီကို အသုံးပြုနည်းကို ပြသသည်-

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B'],
                   ' points ': [12, 29, 34, 14, 10, 11, 7, 36, 34, 22]})

#view DataFrame
print (df)

  team points
0 to 12
1 to 29
2 to 34
3 to 14
4 to 10
5 B 11
6 B 7
7 B 36
8 B 34
9 B 22

ဥပမာ 1: အုပ်စုအလိုက် N အကြီးဆုံးတန်ဖိုးများကို ပြသပါ။

အဖွဲ့ အလိုက် အုပ်စုဖွဲ့ထားသော အကြီးဆုံး အမှတ် တန်ဖိုးနှစ်ခုကို ပြသရန် အောက်ပါ syntax ကို အသုံးပြုနိုင်သည်။

 #display two largest points values grouped by team
df. groupby (' team ')[' points ']. nlargest ( 2 )

team   
At 2 34
      1 29
B 7 36
      8 34
Name: points, dtype: int64

ရလဒ်သည် အဖွဲ့ တစ်ခုစီအတွက် အကြီးဆုံး အမှတ် တန်ဖိုးနှစ်ခုကို မူရင်း DataFrame တွင် ၎င်းတို့၏ အညွှန်းနေရာများနှင့်အတူ ပြသသည်။

ဥပမာ 2: အုပ်စုအလိုက် N အကြီးဆုံးတန်ဖိုးများပေါ်တွင် လုပ်ဆောင်ချက်တစ်ခုကို လုပ်ဆောင်ပါ။

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

 #calculate sum of two largest points values for each team
df. groupby (' team ')[' points ']. apply ( lambda grp: grp.nlargest ( 2 ) .sum ())

team
At 63
B70
Name: points, dtype: int64

ဤသည်မှာ ရလဒ်ကို မည်သို့အဓိပ္ပာယ်ဖွင့်ဆိုနိုင်သည်-

  • Team A အတွက် အကြီးဆုံး အမှတ်တန်ဖိုးနှစ်ခု၏ ပေါင်းလဒ်သည် 63 ဖြစ်သည်။
  • Team B အတွက် အကြီးဆုံး အမှတ်တန်ဖိုးနှစ်ခု၏ ပေါင်းလဒ်သည် 70 ဖြစ်သည်။

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

 #calculate mean of two largest points values for each team
df. groupby (' team ')[' points ']. apply ( lambda grp: grp.nlargest ( 2 ) .mean ())

team
At 31.5
B 35.0
Name: points, dtype: float64

ဤသည်မှာ ရလဒ်ကို မည်သို့အဓိပ္ပာယ်ဖွင့်ဆိုနိုင်သည်-

  • Team A အတွက် အမှတ်အများဆုံးတန်ဖိုးနှစ်ခု၏ ပျမ်းမျှသည် 31.5 ဖြစ်သည်။
  • Team B အတွက် အမှတ်အများဆုံးတန်ဖိုးနှစ်ခု၏ ပျမ်းမျှသည် 35.0 ဖြစ်သည်။

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

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

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

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

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

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