Python တွင် frequency tables ဖန်တီးနည်း
ကြိမ်နှုန်းဇယား သည် မတူညီသောအမျိုးအစားများ၏ ကြိမ်နှုန်းများကိုပြသသည့်ဇယားတစ်ခုဖြစ်သည်။ ဤဇယားအမျိုးအစားသည် ဒေတာအစုတစ်ခုအတွင်း တန်ဖိုးများခွဲဝေမှုကို နားလည်ရန်အတွက် အထူးအသုံးဝင်သည်။
ဤသင်ခန်းစာတွင် Python တွင် ကြိမ်နှုန်းဇယားများဖန်တီးနည်းကို ရှင်းပြထားသည်။
စီးရီးတစ်ခုအတွက် တစ်လမ်းသွား ကြိမ်နှုန်းဇယား
ပန်ဒါစီးရီးရှိ တစ်ဦးချင်းတန်ဖိုးများ၏ ကြိမ်နှုန်းများကို ရှာဖွေရန်၊ သင်သည် value_counts() လုပ်ဆောင်ချက်ကို အသုံးပြုနိုင်သည်။
import pandas as pd #defineSeries data = pd.Series([1, 1, 1, 2, 3, 3, 3, 3, 4, 4, 5]) #find frequencies of each value data.value_counts() 3 4 1 3 4 2 5 1 2 1
ဒေတာတန်ဖိုးများကို ကြိမ်နှုန်းဖြင့် စီရန်မလိုလားပါက sort=False အကြောင်းပြချက်ကို သင်ထည့်နိုင်သည်။
data.value_counts(sort= False )
1 3
2 1
3 4
4 2
5 1
ရလဒ်ကို အဓိပ္ပာယ်ဖွင့်ဆိုရန် နည်းလမ်းမှာ အောက်ပါအတိုင်းဖြစ်သည်။
- “ 1” တန်ဖိုးသည် စီးရီးတွင် 3 ကြိမ်ပေါ်လာသည်။
- တန်ဖိုး “ 2” သည် စီးရီးတွင် 1 ကြိမ်ပေါ်လာသည်။
- “ 3” တန်ဖိုးသည် စီးရီးတွင် 4 ကြိမ်ပေါ်လာသည်။
နောက် … ပြီးတော့။
DataFrame အတွက် တစ်လမ်းသွား ကြိမ်နှုန်းဇယား
pandas DataFrame ၏ ကြိမ်နှုန်းများကို ရှာဖွေရန် အောက်ပါ syntax ကို အသုံးပြုသည့် crosstab () လုပ်ဆောင်ချက်ကို အသုံးပြုနိုင်သည်။
crosstab (အညွှန်းများ၊ ကော်လံများ)
ရွှေ-
- အညွှန်း- အုပ်စုအလိုက် ကော်လံအမည်
- ကော်လံများ- ကြိမ်နှုန်းကော်လံကို ပေးရမည့်အမည်
ဥပမာအားဖြင့်၊ ကျွန်ုပ်တို့တွင် အတန်းတစ်ခုရှိ မတူညီသော ကျောင်းသား 10 ဦး၏ အတန်း၊ အသက်နှင့် လိင်ဆိုင်ရာ အချက်အလက်များ ပါဝင်သော DataFrame တစ်ခုရှိသည် ဆိုကြပါစို့။ ဤသည်မှာ စာလုံးအဆင့်တစ်ခုစီ၏ ကြိမ်နှုန်းကို မည်သို့ရှာရမည်နည်း။
#create data df = pd.DataFrame({'Grade': ['A','A','A','B','B', 'B', 'B', 'C', 'D', 'D '], 'Age': [18, 18, 18, 19, 19, 20, 18, 18, 19, 19], 'Gender': ['M','M', 'F', 'F', 'F', 'M', 'M', 'F', 'M', 'F']}) #view data df Grade Age Gender 0 to 18 m 1 to 18 m 2 A 18 F 3 B 19 F 4 B 19 F 5 B 20 M 6 B 18 M 7 C 18 F 8 D 19 M 9 D 19 F #find frequency of each letter grade pd.crosstab(index=df[' Grade '], columns=' count ') col_0 count Grade At 3 B4 C 1 D 2
ဤသည်ကို အဓိပ္ပာယ်ဖွင့်ဆိုရန် နည်းလမ်းမှာ-
- အတန်းထဲတွင် ကျောင်းသား ၃ ယောက် က “A” ကို ရရှိခဲ့သည်။
- အတန်းထဲတွင် ကျောင်းသား (၄) ဦးသည် “B” ကို ရရှိခဲ့သည်။
- အတန်းထဲတွင် ကျောင်းသား ၁ ဦး သည် “C” ကို ရရှိခဲ့သည်။
- အတန်းထဲတွင် ကျောင်းသား 2 ယောက် “ D” ကို ရရှိခဲ့သည်။
အခြားကော်လံများအတွက် ကြိမ်နှုန်းအရေအတွက်များကို ရှာဖွေရန် အလားတူ syntax ကို အသုံးပြုနိုင်ပါသည်။ ဥပမာအားဖြင့်၊ ဤသည်မှာ အသက်အရွယ်အလိုက် အကြိမ်ရေကိုရှာဖွေနည်းဖြစ်သည်-
pd.crosstab(index=df[' Age '], columns=' count ') col_0 count Age 18 5 19 4 20 1
ဤသည်ကို အဓိပ္ပာယ်ဖွင့်ဆိုရန် နည်းလမ်းမှာ-
- ကျောင်းသား ၅ ယောက် က အသက် ၁၈ နှစ်။
- ကျောင်းသား ၄ ယောက် က အသက် ၁၉ နှစ်။
- ကျောင်းသား ၁ ယောက် က အသက် ၂၀ ပါ။
ပေါင်းလဒ်ဖြင့် ပိုင်းခြားခြင်းဖြင့် ဒေတာအတွဲ၏ အချိုးအစားများအဖြစ် ကြိမ်နှုန်းများကို အလွယ်တကူ ပြသနိုင်သည်-
#define crosstab tab = pd.crosstab(index=df['Age'], columns='count') #find proportions tab/tab.sum() col_0 count Age 18 0.5 19 0.4 20 0.1
ဤသည်ကို အဓိပ္ပာယ်ဖွင့်ဆိုရန် နည်းလမ်းမှာ-
- ကျောင်းသားများ၏ 50% သည် အသက် 18 နှစ်ဖြစ်သည်။
- ကျောင်းသား ၄၀ ရာခိုင်နှုန်းသည် အသက် ၁၉ နှစ်ဖြစ်သည်။
- ကျောင်းသားများ၏ 10% သည် အသက် 20 နှစ်များဖြစ်သည်။
DataFrame အတွက် Bidirectional ကြိမ်နှုန်းဇယားများ
ဒေတာအစုံရှိ မတူညီသော ကိန်းရှင်နှစ်ခု၏ ကြိမ်နှုန်းများကို ပြသရန် နှစ်လမ်းသွား ကြိမ်နှုန်းဇယားကိုလည်း ဖန်တီးနိုင်သည်။ ဥပမာ၊ ဤနေရာတွင် အသက်နှင့် အဆင့် ကိန်းရှင်များအတွက် နှစ်လမ်းသွား ကြိမ်နှုန်းဇယားကို ဖန်တီးနည်း-
pd.crosstab(index=df[' Age '], columns=df[' Grade ']) Grade A B C D Age 18 3 1 1 0 19 0 2 0 2 20 0 1 0 0
ဤသည်ကို အဓိပ္ပာယ်ဖွင့်ဆိုရန် နည်းလမ်းမှာ-
- အတန်းထဲတွင် “ A” ရရှိသော အသက် 18 နှစ်အရွယ် ကျောင်းသား 3 ယောက်ရှိသည်။
- အတန်းထဲတွင် “ B” ရရှိထားသည့် အသက် 18 နှစ်အရွယ် ကျောင်းသား 1 ယောက်ရှိသည်။
- အတန်းထဲတွင် “ C” ရရှိထားသည့် အသက် 18 နှစ်အရွယ် ကျောင်းသား 1 ယောက်ရှိသည်။
- အတန်းထဲတွင် “D” ရရှိသော အသက် 18 နှစ်အရွယ် ကျောင်းသား 0 ရှိပါသည်။
နောက် … ပြီးတော့။
crosstab() လုပ်ဆောင်ချက်အတွက် စာရွက်စာတမ်းအပြည့်အစုံကို ဤနေရာတွင် ရှာတွေ့နိုင်ပါသည်။