วิธีการคำนวณควอไทล์ตามกลุ่มใน 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

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *