Pandas: สูตรง่ายๆ สำหรับ “การจัดกลุ่มตามสินทรัพย์”
คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้เพื่อดำเนินการเทียบเท่ากับคำสั่ง SQL “GROUP BY HAVING” ในแพนด้า:
df. groupby (' some_column '). filter ( lambda x: some condition)
ตัวอย่างต่อไปนี้แสดงวิธีการใช้ไวยากรณ์นี้ในทางปฏิบัติกับ Pandas DataFrame ต่อไปนี้:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'B', 'B', 'B', 'C', 'C'], ' position ': ['G', 'F', 'F', 'G', 'F', 'F', 'G', 'G'], ' points ': [30, 22, 19, 14, 14, 11, 20, 28]}) #view DataFrame print (df) team position points 0 AG 30 1 AF 22 2 FY 19 3 BG 14 4 BF 14 5 BF 11 6 GC 20 7 GC 28
ตัวอย่างที่ 1: กลุ่มแพนด้าที่มีกับเคานต์
รหัสต่อไปนี้แสดงวิธีจัดกลุ่มแถวตามค่าในคอลัมน์ ทีม จากนั้นกรองเฉพาะทีมที่มีจำนวนมากกว่า 2:
#group by team and filter for teams with count > 2
df. groupby (' team '). filter ( lambda x: len (x) > 2 )
team position points
0 A G 30
1 A F 22
2 A F 19
3 B G 14
4 B F 14
5 B F 11
โปรดทราบว่าจะมีการส่งคืนเฉพาะแถวที่มีค่าทีมเป็น “A” หรือ “B” เนื่องจากทั้งสองทีมมีจำนวนมากกว่า 2
ตัวอย่างที่ 2: กลุ่มแพนด้าที่มีค่าเฉลี่ย
รหัสต่อไปนี้แสดงวิธีจัดกลุ่มแถวตามค่าในคอลัมน์ ทีม จากนั้นกรองเฉพาะทีมที่มีค่า คะแนน เฉลี่ยมากกว่า 20:
#group by team and filter for teams with mean points > 20
df. groupby (' team '). filter ( lambda x: x[' points ']. mean () > 20 )
team position points
0 A G 30
1 A F 22
2 A F 19
6 C G 20
7 C G 28
โปรดทราบว่าจะมีการส่งคืนเฉพาะแถวที่มีค่าทีมเป็น “A” หรือ “C” เนื่องจากเป็นสองทีมที่มีค่าคะแนนเฉลี่ยมากกว่า 20
ตัวอย่างที่ 3: กลุ่มแพนด้าที่มีผลรวม
รหัสต่อไปนี้แสดงวิธีจัดกลุ่มแถวตามค่าในคอลัมน์ ทีม จากนั้นกรองเฉพาะทีมที่ ผล รวมคะแนนเท่ากับ 48:
#group by team and filter for teams with sum of points equal to 48
df. groupby (' team '). filter ( lambda x: x[' points ']. sum () == 48 )
team position points
6 C G 20
7 C G 28
โปรดทราบว่าระบบจะส่งคืนเฉพาะแถวที่มีค่าทีมเป็น “C” เนื่องจากเป็นทีมเดียวที่มีผลรวมคะแนนเท่ากับ 48
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการทั่วไปอื่น ๆ ในแพนด้า:
Pandas: รับดัชนีของแถวที่มีคอลัมน์ตรงกับค่า
Pandas: วิธีเลือกคอลัมน์ที่มีสตริงเฉพาะ
Pandas: วิธีตรวจสอบว่าคอลัมน์มีสตริงหรือไม่