Pandas: วิธีใช้ groupby() กับขนาด ()
คุณสามารถใช้วิธีการต่อไปนี้กับฟังก์ชัน groupby() และ size() ใน pandas เพื่อนับจำนวนครั้งที่เกิดขึ้นต่อกลุ่ม:
วิธีที่ 1: นับเหตุการณ์ที่จัดกลุ่มตามตัวแปร
df. groupby (' var1 '). size ()
วิธีที่ 2: นับเหตุการณ์ที่จัดกลุ่มตามตัวแปรหลายตัว
df. groupby ([' var1 ', ' var2 ']). size ()
วิธีที่ 3: นับเหตุการณ์ที่จัดกลุ่มตามตัวแปรหลายตัวและเรียงลำดับตามตัวเลข
df. groupby ([' var1 ', ' var2 ']). size (). sort_values (ascending= False )
ตัวอย่างต่อไปนี้แสดงวิธีการใช้แต่ละวิธีในทางปฏิบัติกับ Pandas DataFrame ต่อไปนี้:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B'], ' position ': ['G', 'G', 'F', 'F', 'F', 'G', 'G', 'G', 'G', 'F'], ' points ': [15, 22, 24, 25, 20, 35, 34, 19, 14, 12]}) #view DataFrame print (df) team position points 0 AG 15 1 AG 22 2 AF 24 3 AF 25 4 AF 20 5 BG 35 6 BG 34 7 BG 19 8 BG 14 9 BF 12
ตัวอย่างที่ 1: นับเหตุการณ์ที่จัดกลุ่มตามตัวแปร
รหัสต่อไปนี้แสดงวิธีใช้ฟังก์ชัน groupby() และ size() เพื่อนับการเกิดขึ้นของค่าในคอลัมน์ ทีม :
#count occurrences of each value in team column
df. groupby (' team '). size ()
team
AT 5
B5
dtype: int64
จากผลลัพธ์เราจะเห็นว่าค่า A และ B ทั้งคู่ปรากฏ 5 ครั้งในคอลัมน์ ทีม
ตัวอย่างที่ 2: นับเหตุการณ์ที่จัดกลุ่มตามตัวแปรหลายตัว
รหัสต่อไปนี้แสดงวิธีใช้ฟังก์ชัน groupby() และ size() เพื่อนับการเกิดขึ้นของค่าสำหรับการรวมกันของค่าแต่ละค่าในคอลัมน์ ทีม และ ตำแหน่ง :
#count occurrences of values for each combination of team and position
df. groupby ([' team ', ' position ']). size ()
team position
AF3
G2
BF 1
G4
dtype: int64
จากผลลัพธ์เราจะเห็นได้ว่า:
- ทีม A และตำแหน่ง F ปรากฏ 3 ครั้ง
- ทีม A และตำแหน่ง G ปรากฏ ตัวสองครั้ง
และอื่นๆ
ตัวอย่างที่ 3: นับเหตุการณ์ที่จัดกลุ่มตามตัวแปรหลายตัวแล้วเรียงลำดับ
โค้ดต่อไปนี้แสดงวิธีใช้ฟังก์ชัน groupby() และ size() เพื่อนับการเกิดขึ้นของค่าสำหรับการรวมกันของค่าแต่ละค่าในคอลัมน์ ทีม และ ตำแหน่ง จากนั้นเรียงลำดับตามการนับ:
#count occurrences for each combination of team and position and sort
df. groupby ([' team ', ' position ']). size (). sort_values (ascending= False )
team position
BG 4
AF3
G2
BF 1
dtype: int64
ผลลัพธ์จะแสดงจำนวนของแต่ละ ทีม และค่า ตำแหน่ง รวมกัน โดยจัดเรียงตามจำนวนจากมากไปน้อย
หมายเหตุ : หากต้องการเรียงลำดับตามตัวเลขจากน้อยไปหามาก เพียงลบ ascending=False ในฟังก์ชัน sort_values() ออก
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีการทำงานทั่วไปอื่นๆ ในแพนด้า:
วิธีนับค่าที่ไม่ซ้ำโดยใช้ Pandas GroupBy
วิธีใช้ฟังก์ชันกับ Pandas Groupby
วิธีสร้างพล็อตบาร์จาก Pandas GroupBy