Pandas: วิธีจัดกลุ่มสองคอลัมน์และรวมเข้าด้วยกัน
คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้กับฟังก์ชัน groupby() ในแพนด้าเพื่อจัดกลุ่มตามสองคอลัมน์และรวมคอลัมน์อื่น:
df. groupby ([' var1 ',' var2 '])[' var3 ']. mean ()
ตัวอย่างเฉพาะนี้จัดกลุ่ม DataFrame ตามคอลัมน์ var1 และ var2 จากนั้นคำนวณค่าเฉลี่ยของคอลัมน์ var3
ตัวอย่างต่อไปนี้แสดงวิธีการจัดกลุ่มในสองคอลัมน์และรวมโดยใช้ DataFrame แพนด้าต่อไปนี้:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B'], ' position ': ['G', 'G', 'F', 'F', 'F', 'G', 'G', 'G', 'G', 'F'], ' points ': [15, 22, 24, 25, 20, 35, 34, 19, 14, 12]}) #view DataFrame print (df) team position points 0 AG 15 1 AG 22 2 AF 24 3 AF 25 4 AF 20 5 BG 35 6 BG 34 7 BG 19 8 BG 14 9 BF 12
ตัวอย่างที่ 1: จัดกลุ่มสองคอลัมน์แล้วคำนวณค่าเฉลี่ยของอีกคอลัมน์หนึ่ง
เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อคำนวณค่าเฉลี่ยของคอลัมน์ คะแนน โดยจัดกลุ่มตามคอลัมน์ ทีม และ ตำแหน่ง :
#calculate mean of points grouped by team and position columns
df. groupby ([' team ', ' position '])[' points ']. mean ()
team position
AF23.0
G 18.5
BF 12.0
G 25.5
Name: points, dtype: float64
จากผลลัพธ์เราจะเห็นได้ว่า:
- คะแนนเฉลี่ยของผู้เล่นจากทีม A ในตำแหน่ง F คือ 23
- คะแนนเฉลี่ยของผู้เล่นทีม A ในตำแหน่ง G คือ 18.5
และอื่นๆ
ตัวอย่างที่ 2: จัดกลุ่มสองคอลัมน์และคำนวณค่าสูงสุดของคอลัมน์อื่น
เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อคำนวณค่าสูงสุดของคอลัมน์ คะแนน โดยจัดกลุ่มตามคอลัมน์ ทีม และ ตำแหน่ง :
#calculate max of points grouped by team and position columns
df. groupby ([' team ', ' position '])[' points ']. max ()
team position
AF25
G22
BF 12
G 35
Name: points, dtype: int64
จากผลลัพธ์เราจะเห็นได้ว่า:
- คะแนนสูงสุดสำหรับผู้เล่นในทีม A ในตำแหน่ง F คือ 25
- คะแนนสูงสุดสำหรับผู้เล่นทีม A ในตำแหน่ง G คือ 22
และอื่นๆ
ตัวอย่างที่ 3: จัดกลุ่มตามสองคอลัมน์และนับจำนวนครั้ง
เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อนับการเกิดขึ้นของแต่ละคอลัมน์ ทีม และ ตำแหน่ง :
#count occurrences of each combination of team and position columns
df. groupby ([' team ', ' position ']). size ()
team position
AF3
G2
BF 1
G4
dtype: int64
จากผลลัพธ์เราจะเห็นได้ว่า:
- มีผู้เล่น 3 คนในทีม A ในตำแหน่ง F
- มีผู้เล่น 2 คนในทีม A ในตำแหน่ง G
และอื่นๆ
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีการทำงานทั่วไปอื่นๆ ในแพนด้า:
วิธีนับค่าที่ไม่ซ้ำโดยใช้ Pandas GroupBy
วิธีใช้ฟังก์ชันกับ Pandas Groupby
วิธีสร้างพล็อตบาร์จาก Pandas GroupBy