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: วิธีตรวจสอบว่าคอลัมน์มีสตริงหรือไม่

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

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