นุ่น: วิธีสร้าง pivottable ด้วยเปอร์เซ็นต์


คุณสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อเพิ่มคอลัมน์ลงในตารางสรุปข้อมูลในรูปแบบแพนด้าที่แสดงเปอร์เซ็นต์ของผลรวมสำหรับคอลัมน์ใดคอลัมน์หนึ่ง:

 my_table[' % points '] = (my_table[' points ']/my_table[' points ']. sum ())* 100

ไวยากรณ์เฉพาะนี้เพิ่มคอลัมน์ใหม่ที่เรียกว่า % point ลงในตารางสรุปที่เรียกว่า my_table ซึ่งจะแสดงเปอร์เซ็นต์ของค่าทั้งหมดในคอลัมน์ คะแนน

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

ตัวอย่าง: สร้าง PivotTable ของ Pandas ด้วยเปอร์เซ็นต์

สมมติว่าเรามี DataFrame แพนด้าต่อไปนี้ซึ่งแสดงจำนวนคะแนนที่ผู้เล่นบาสเก็ตบอลแต่ละคนทำได้:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   ' position ': ['Guard', 'Guard', 'Forward', 'Forward',
                                'Guard', 'Guard', 'Forward', 'Forward'],
                   ' points ': [22, 30, 14, 15, 19, 30, 23, 20]})

#view DataFrame
print (df)

  team position points
0 A Guard 22
1A Guard 30
2 A Forward 14
3 A Forward 15
4 B Guard 19
5 B Guard 30
6 B Forward 23
7 B Forward 20

เราสามารถใช้ฟังก์ชัน pivot_table() เพื่อสร้างตาราง Pivot ที่แสดงผลรวมคะแนนตามทีมและตำแหน่ง:

 #create pivot table to calculate sum of points by team and position
my_table = pd. pivot_table (df, index=[' team ', ' position '], aggfunc=' sum ')

#view pivot table
print (my_table)

               points
team position        
A Forward 29
     Guard 52
B Forward 43
     Guard 49

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

  • ตัวรุกของทีม A ทำคะแนนได้ทั้งหมด 29 แต้ม
  • การ์ดของทีม A ได้คะแนนรวม 52 คะแนน
  • ตัวรุกของทีม B ทำคะแนนได้ทั้งหมด 43 แต้ม
  • การ์ดของทีม B ทำคะแนนได้ทั้งหมด 49 คะแนน

จากนั้นเราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อเพิ่มคอลัมน์ใหม่ที่เรียกว่า % คะแนน ซึ่งจะแสดงเปอร์เซ็นต์ของคะแนนรวมสำหรับแต่ละแถว:

 #add column that displays points as a percentage of total points
my_table[' % points '] = (my_table[' points ']/my_table[' points ']. sum ())* 100

#view updated pivot table
print (my_table)

               points % points
team position                   
A Forward 29 16.763006
     Guard 52 30.057803
B Forward 43 24.855491
     Guard 49 28.323699

คอลัมน์ % Points ใหม่จะแสดงค่าคะแนนเป็นเปอร์เซ็นต์ของคะแนนทั้งหมด

โปรดทราบว่าคุณสามารถใช้ฟังก์ชัน round() เพื่อปัดเศษค่าเปอร์เซ็นต์ให้เป็นทศนิยมจำนวนหนึ่งได้

 #add column that displays points as a percentage of total points (rounded)
my_table[' % points '] = round ((my_table[' points ']/my_table[' points ']. sum ())* 100 , 2 )

#view updated pivot table
print (my_table)

               points % points
team position                  
A Forward 29 16.76
     Guard 52 30.06
B Forward 43 24.86
     Guard 49 28.32

ขณะนี้ค่าเปอร์เซ็นต์ถูกปัดเศษเป็นทศนิยมสองตำแหน่ง

หมายเหตุ : คุณสามารถดูเอกสารฉบับเต็มของฟังก์ชัน pandas pivot_table() ได้ที่นี่

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

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

Pandas: วิธีเพิ่มตัวกรองลงในตารางสาระสำคัญ
Pandas: วิธีจัดเรียงตารางเดือยตามค่าในคอลัมน์
นุ่น: วิธีสร้างตารางสาระสำคัญด้วยผลรวมของค่า

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

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