วิธีดำเนินการผลรวม groupby ใน pandas (พร้อมตัวอย่าง)


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

 df. groupby ([' group1 ',' group2 '])[' sum_col ']. sum (). reset_index ()

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

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   ' position ': ['G', 'G', 'F', 'C', 'G', 'F', 'F', 'C'],
                   ' points ': [25, 17, 14, 9, 12, 9, 6, 4],
                   ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]})

#view DataFrame
df

	team position points rebounds
0 A G 25 11
1 A G 17 8
2 A F 14 10
3 A C 9 6
4 B G 12 6
5 B F 9 5
6 B F 6 9
7 B C 4 12

ตัวอย่างที่ 1: จัดกลุ่มตามคอลัมน์ เพิ่มคอลัมน์

รหัสต่อไปนี้แสดงวิธีจัดกลุ่มตามคอลัมน์และรวมค่าในคอลัมน์:

 #group by team and sum the points
df. groupby ([' team '])[' points ']. sum (). reset_index ()

	team points
0 to 65
1 B 31

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

  • ผู้เล่นทีม A มีคะแนนรวม 65 คะแนน
  • ผู้เล่นทีม B มีคะแนนรวม 31 คะแนน

ตัวอย่างที่ 2: จัดกลุ่มตามหลายคอลัมน์ เพิ่มหลายคอลัมน์

รหัสต่อไปนี้แสดงวิธีจัดกลุ่มระหว่างหลายคอลัมน์และรวมหลายคอลัมน์:

 #group by team and position, sum points and rebounds
df. groupby ([' team ', ' position '])[' points ', ' rebounds ']. sum (). reset_index ()

        team position points rebounds
0 A C 9 6
1 A F 14 10
2 A G 42 19
3 B C 4 12
4 B F 15 14
5 B G 12 6

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

  • ผู้เล่นทีม A ตำแหน่ง “C” ทำไปทั้งหมด 9 แต้ม 6 รีบาวด์
  • ผู้เล่นทีม A ตำแหน่ง “F” ทำคะแนนรวม 14 แต้ม 10 รีบาวด์
  • ผู้เล่นทีม A ตำแหน่ง G ทำคะแนนรวม 42 แต้ม 19 รีบาวด์

และอื่นๆ

โปรดทราบว่าฟังก์ชัน reset_index() จะป้องกันไม่ให้การจัดกลุ่มคอลัมน์เป็นส่วนหนึ่งของดัชนี

ตัวอย่างเช่น นี่คือผลลัพธ์ที่จะเกิดขึ้นถ้าเราไม่ใช้มัน:

 #group by team and position, sum points and rebounds
df. groupby ([' team ', ' position '])[' points ', ' rebounds ']. sum ()

                 rebound points
team position		
A C 9 6
F 14 10
G 42 19
B C 4 12
F 15 14
G 12 6

ขึ้นอยู่กับว่าคุณต้องการให้ผลลัพธ์ปรากฏอย่างไร คุณอาจเลือกใช้ฟังก์ชัน reset_index() หรือไม่ก็ได้

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

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

วิธีนับการพบเห็นฝูงแพนด้า
วิธีค้นหาค่าสูงสุดต่อกลุ่มที่ Pandas
วิธีการคำนวณควอไทล์ตามกลุ่มใน Pandas

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

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