Pandas: วิธีใช้ group by พร้อมเงื่อนไข where


วิธีที่ง่ายที่สุดในการใช้ group by โดยมีเงื่อนไข Where ใน pandas คือการใช้ฟังก์ชัน query() :

 df. query (" team == 'A' "). groupby ([" position "])[" points "]. mean (). reset_index ()

ตัวอย่างนี้จะคำนวณค่าเฉลี่ยของ point ซึ่งจัดกลุ่มตาม ตำแหน่ง โดยที่ team เท่ากับ “A” ใน DataFrame ของ pandas บางตัว

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

ตัวอย่าง: วิธีใช้ Group By กับเงื่อนไข Where ใน Pandas

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

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B'],
                   ' position ': ['G', 'G', 'F', 'F', 'F', 'G', 'G', 'F'],
                   ' points ': [22, 14, 15, 10, 8, 29, 33, 18]})

#view DataFrame
print (df)

  team position points
0 AG 22
1 AG 14
2 AF15
3 AF 10
4 AF 8
5 BG 29
6 BG 33
7 BF 18

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

 #calculate mean value of points, grouped by position, where team == 'A'
df. query (" team == 'A' "). groupby ([" position "])[" points "]. mean (). reset_index ()

        position points
0 F 11.0
1G 18.0

จากผลลัพธ์เราจะเห็นได้ว่า:

  • คะแนนเฉลี่ยสำหรับผู้เล่นในตำแหน่ง “F” ของทีม A คือ 11
  • คะแนนเฉลี่ยสำหรับผู้เล่นในตำแหน่ง “G” ของทีม A คือ 18

โปรดทราบว่าเรายังสามารถใช้ตัวดำเนินการ & ในฟังก์ชัน query() เพื่อค้นหาแถวที่ตรงตามเงื่อนไขหลายข้อได้

ตัวอย่างเช่น รหัสต่อไปนี้แสดงวิธีการคำนวณค่า คะแนน เฉลี่ย โดยจัดกลุ่มตาม ตำแหน่ง โดยที่ ทีม เท่ากับ “A” และ ตำแหน่งเท่ากับ “G”:

 #calculate mean value of points by position where team is 'A' and position is 'G'
df. query (" team=='A' & position=='G' "). groupby ([" position "])[" points "]. mean (). reset_index ()

	position points
0G 18.0

จากผลลัพธ์เราจะเห็นว่าค่าคะแนนเฉลี่ยของผู้เล่นในตำแหน่ง “G” ในทีม A คือ 18

เนื่องจากเราระบุสองเงื่อนไขในฟังก์ชัน Query() จึงมีการใช้เฉพาะแถวที่ตรงตามเงื่อนไขทั้งสองเท่านั้น

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

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

วิธีดำเนินการผลรวม GroupBy ใน Pandas
วิธีใช้ Groupby และ Plot ใน Pandas
วิธีนับค่าที่ไม่ซ้ำโดยใช้ GroupBy ใน Pandas

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

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