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

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

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