Pandas: วิธีใช้ aggfunc ในฟังก์ชัน crosstab ()
คุณสามารถใช้อาร์กิวเมนต์ aggfunc ในฟังก์ชัน pandas crosstab() เพื่อสร้าง crosstab ที่รวมค่าโดยใช้เมตริกเฉพาะ:
p.d. crosstab (index=df. col1 , columns=df. col2 , values=df. col3 , aggfunc=' count ')
ค่าเริ่มต้นของ aggfunc คือ “นับ” แต่คุณสามารถระบุวิธีการรวมอื่นๆ ได้ เช่น ค่าเฉลี่ย ค่ามัธยฐาน ผลรวม ค่าต่ำสุด สูงสุด ฯลฯ
คุณยังสามารถระบุวิธีการรวมหลายวิธีในอาร์กิวเมนต์ aggfunc :
p.d. crosstab (index=df. col1 , columns=df. col2 , values=df. col3 , aggfunc=[' min ', ' max '])
ตัวอย่างต่อไปนี้แสดงวิธีการใช้แต่ละวิธีในทางปฏิบัติกับ Pandas DataFrame ต่อไปนี้:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'B', 'B', 'B', 'B', 'C', 'C', 'C', 'C '], ' position ':['G', 'G', 'F', 'G', 'F', 'F', 'F', 'G', 'G', 'F', 'F'], ' points ': [22, 25, 24, 39, 34, 20, 18, 17, 20, 19, 22]}) #view DataFrame print (df) team position points 0 AG 22 1 AG 25 2 AF 24 3 BG 39 4 BF 34 5 BF 20 6 BF 18 7 GC 17 8 GC 20 9 CF 19 10 CF 22
ตัวอย่างที่ 1: สร้างครอสแท็บที่มีค่าเป็น aggfunc
เราสามารถใช้ฟังก์ชัน crosstab() ต่อไปนี้กับอาร์กิวเมนต์ aggfunc=’mean’ เพื่อสร้างครอสแท็บที่แสดงคะแนนเฉลี่ยสำหรับแต่ละตำแหน่งและการรวมทีม:
#create crosstab that displays mean points value by team and position p.d. crosstab (index=df. team , columns=df. position , values=df. points , aggfunc=' mean ') position F G team A 24.0 23.5 B 24.0 39.0 C 20.5 18.5
ต่อไปนี้เป็นวิธีการตีความผลลัพธ์:
- คะแนนเฉลี่ยของผู้เล่นทีม A ในตำแหน่ง F คือ 24
- คะแนนเฉลี่ยของผู้เล่นทีม A ในตำแหน่ง G คือ 23.5
และอื่นๆ
นอกจากนี้เรายังสามารถใช้ตัวชี้วัดการรวมอื่นได้ เช่น ค่าสูงสุด:
#create crosstab that displays max points value by team and position p.d. crosstab (index=df. team , columns=df. position , values=df. points , aggfunc=' max ') position F G team At 24 25 B 34 39 C 22 20
ต่อไปนี้เป็นวิธีการตีความผลลัพธ์:
- คะแนนสูงสุดสำหรับผู้เล่นทีม A ในตำแหน่ง F คือ 24
- คะแนนสูงสุดสำหรับผู้เล่นในทีม A ในตำแหน่ง G คือ 25
และอื่นๆ
ตัวอย่างที่ 2: สร้างครอสแท็บที่มีหลายค่าใน aggfunc
เราสามารถใช้ฟังก์ชัน crosstab() ที่มีค่าหลายค่าในอาร์กิวเมนต์ aggfunc เพื่อรวมค่าจุดด้วยเมตริกหลายค่าสำหรับแต่ละตำแหน่งและการรวมกันของทีม:
#create crosstab that displays min and max points by team and position p.d. crosstab (df. team , df. position , df. points , aggfunc=[' min ', ' max ']) min max position F G F G team A 24 22 24 25 B 18 39 34 39 C 19 17 22 20
ต่อไปนี้เป็นวิธีการตีความผลลัพธ์:
- คะแนนขั้นต่ำสำหรับผู้เล่นทีม A ในตำแหน่ง F คือ 24
- คะแนนขั้นต่ำสำหรับผู้เล่นทีม A ในตำแหน่ง G คือ 22
- คะแนนสูงสุดสำหรับผู้เล่นทีม A ในตำแหน่ง F คือ 24
- คะแนนสูงสุดสำหรับผู้เล่นทีม A ในตำแหน่ง G คือ 25
และอื่นๆ
หมายเหตุ : คุณสามารถดูเอกสารฉบับเต็มของฟังก์ชัน pandas crosstab() ได้ที่นี่
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการงานแพนด้าทั่วไปอื่นๆ:
Pandas: วิธีสร้างครอสแท็บพร้อมเปอร์เซ็นต์
Pandas: วิธีใช้ GroupBy และการนับค่า
Pandas: วิธีใช้ GroupBy พร้อมจำนวนถังขยะ