วิธีการคำนวณควอไทล์ตามกลุ่มใน pandas
คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้เพื่อคำนวณควอนไทล์ตามกลุ่มใน Pandas:
df. groupby (' grouping_variable '). quantile ( .5 )
ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ
ตัวอย่างที่ 1: คำนวณควอนไทล์ตามกลุ่ม
สมมติว่าเรามี DataFrame แพนด้าดังต่อไปนี้:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': [1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2], ' score ': [3, 4, 4, 5, 5, 8, 1, 2, 2, 3, 3, 5]}) #view first five rows df. head () team score 0 1 3 1 1 4 2 1 4 3 1 5 4 1 5
รหัสต่อไปนี้แสดงวิธีคำนวณเปอร์เซ็นไทล์ที่ 90 ของค่าในคอลัมน์ “คะแนน” ซึ่งจัดกลุ่มตามคอลัมน์ “ทีม”:
df. groupby (' team '). quantile ( .90 ) score team 1 6.5 2 4.0
ต่อไปนี้เป็นวิธีการตีความผลลัพธ์:
- เปอร์เซ็นไทล์ที่ 90 ของ “คะแนน” สำหรับทีม 1 คือ 6.5
- เปอร์เซ็นไทล์ที่ 90 ของ “คะแนน” สำหรับทีม 2 คือ 4.0
ตัวอย่างที่ 2: คำนวณควอไทล์หลายรายการต่อกลุ่ม
รหัสต่อไปนี้แสดงวิธีการคำนวณควอไทล์หลายรายการพร้อมกันต่อกลุ่ม:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': [1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2], ' score ': [3, 4, 4, 5, 5, 8, 1, 2, 2, 3, 3, 5]}) #create functions to calculate 1st and 3rd quartiles def q1(x): return x. quantile ( 0.25 ) def q3(x): return x. quantile ( 0.75 ) #calculate 1st and 3rd quartiles by group vals = {' score ': [q1, q3]} df. groupby (' team '). agg (vals) score q1 q3 team 1 4.0 5.0 2 2.0 3.0
ต่อไปนี้เป็นวิธีการตีความผลลัพธ์:
- ควอร์ไทล์ที่หนึ่งและสามของคะแนนของทีม 1 คือ 4.0 และ 5.0 ตามลำดับ
- ควอร์ไทล์ที่หนึ่งและสามของคะแนนของทีม 2 คือ 2.0 และ 3.0 ตามลำดับ
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีการใช้งานฟังก์ชันทั่วไปอื่น ๆ ในแพนด้า:
วิธีค้นหาค่าสูงสุดต่อกลุ่มที่ Pandas
วิธีนับการพบเห็นฝูงแพนด้า
วิธีการคำนวณค่าเฉลี่ยของคอลัมน์ใน Pandas