Pandas: วิธีคำนวณอันดับในออบเจ็กต์ groupby


คุณสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อคำนวณการเรียงลำดับของค่าในวัตถุ GroupBy ในหมีแพนด้า:

 df[' rank '] = df. groupby ([' group_var '])[' value_var ']. rank ()

ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ

ตัวอย่าง: การคำนวณการจัดอันดับในออบเจ็กต์ GroupBy

สมมติว่าเรามี DataFrame แพนด้าต่อไปนี้ซึ่งแสดงคะแนนที่ผู้เล่นบาสเกตบอลจากทีมต่างๆ:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'C', 'C', 'C'],
                   ' points ': [10, 10, 12, 15, 19, 23, 20, 20, 26]})

#view DataFrame
print (df)

  team points
0 to 10
1 to 10
2 to 12
3 to 15
4 B 19
5 B 23
6 C 20
7 C 20
8 C 26

เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อคำนวณการจัดอันดับค่าคะแนนของแต่ละทีม:

 #add ranking column to data frame
df[' points_rank '] = df. groupby ([' team '])[' points ']. rank ()

#view updated DataFrame
print (df)

  team points points_rank
0 to 10 1.5
1 to 10 1.5
2 to 12 3.0
3 to 15 4.0
4 B 19 1.0
5 B 23 2.0
6 C 20 1.5
7 C 20 1.5
8 C 26 3.0

ตามค่าเริ่มต้น ฟังก์ชัน Rank() จะกำหนดค่าอันดับตามลำดับจากน้อยไปหามาก และใช้อันดับเฉลี่ยในกรณีที่เสมอกัน

อย่างไรก็ตาม เราสามารถใช้ วิธี จากล่างขึ้นบน และอาร์กิวเมนต์เพื่อเรียงลำดับค่าด้วยวิธีอื่น:

 #add ranking column to data frame
df[' points_rank '] = df. groupby ([' team '])[' points ']. rank (' dense ', ascending= False )

#view updated DataFrame
print (df)

  team points points_rank
0 to 10 3.0
1 to 10 3.0
2 to 12 2.0
3 to 15 1.0
4 B 19 2.0
5 B 23 1.0
6 C 20 2.0
7 C 20 2.0
8 C 26 1.0

วิธีนี้จะกำหนดค่า 1 ให้กับค่าที่มากที่สุดในแต่ละกลุ่ม

คุณสามารถดูรายการวิธีการจัดอันดับทั้งหมดที่คุณสามารถใช้กับฟังก์ชัน Rank() ได้ที่นี่

หมายเหตุ : คุณสามารถดูเอกสารฉบับเต็มของการดำเนินการ GroupBy ใน pandas ได้ที่นี่

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการทั่วไปอื่น ๆ ในแพนด้า:

นุ่น: วิธีคำนวณผลรวมสะสมต่อกลุ่ม
Pandas: วิธีนับค่าที่ไม่ซ้ำตามกลุ่ม
นุ่น: วิธีคำนวณความสัมพันธ์ตามกลุ่ม

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

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