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 พร้อมจำนวนถังขยะ

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

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