Pandas: วิธีใช้ groupby พร้อมจำนวนถังขยะ


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

 #define bins
groups = df. groupby ([' group_var ', pd. cut (df. value_var , bins)])

#display bin count by group variable
groups. size (). unstack ()

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

ตัวอย่าง: ใช้ GroupBy กับจำนวนถังขยะใน Pandas

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

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'A', 'A', 'A', 'A',
                            'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B'],
                   ' points ': [4, 7, 7, 11, 12, 15, 19, 19,
                             5, 5, 11, 12, 14, 14, 15, 15]})

#view DataFrame
print (df)

   team points
0 to 4
1 to 7
2 to 7
3 to 11
4 to 12
5 to 15
6 to 19
7 to 19
8 B 5
9 B 5
10 B 11
11 B 12
12 B 14
13 B 14
14 B 15
15 B 15

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

 #define groups
groups = df. groupby ([' team ', pd. cut (df. points , [0, 10, 15, 20])])

#display bin count grouped by team
groups. size (). unstack ()

points (0, 10] (10, 15] (15, 20]
  team			
     A 3 3 2
     B 2 6 0

ต่อไปนี้เป็นวิธีการตีความผลลัพธ์:

  • โดยรวมแล้วผู้เล่น 3 คนจากทีม A ทำคะแนนระหว่าง 0 ถึง 10 คะแนน
  • โดยรวมแล้วผู้เล่น 3 คนจากทีม A ทำคะแนนระหว่าง 10 ถึง 15 คะแนน
  • โดยรวมแล้วผู้เล่น 2 คนจากทีม A ทำคะแนนระหว่าง 15 ถึง 20 คะแนน

และอื่นๆ

โปรดทราบว่าเราสามารถระบุถังขยะที่เราต้องการได้ในฟังก์ชัน pd.cut()

ตัวอย่างเช่น เราสามารถกำหนดได้เพียงสอง bins:

 #define groups
groups = df. groupby ([' team ', pd. cut (df. points , [0, 10, 20])])

#display bin count grouped by team
groups. size (). unstack ()

points (0, 10] (10, 20]
  team		
     At 3 5
     B 2 6

ต่อไปนี้เป็นวิธีการตีความผลลัพธ์:

  • โดยรวมแล้วผู้เล่น 3 คนจากทีม A ทำคะแนนระหว่าง 0 ถึง 10 คะแนน
  • โดยรวมแล้ว ผู้เล่น 5 คนจากทีม A ทำคะแนนได้ระหว่าง 10 ถึง 20 คะแนน
  • โดยรวมแล้ว ผู้เล่น 2 คนจากทีม B ทำคะแนนระหว่าง 0 ถึง 10 คะแนน
  • โดยรวมแล้ว ผู้เล่น 6 คนจากทีม B ทำคะแนนได้ระหว่าง 10 ถึง 20 คะแนน

หมายเหตุ 1 : คุณสามารถดูเอกสารฉบับเต็มของฟังก์ชัน GroupBy ได้ที่นี่

หมายเหตุ 2 : คุณสามารถดูเอกสารฉบับเต็มของฟังก์ชัน การตัดได้ ที่นี่

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

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

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

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

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