นุ่น: วิธีสร้าง 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: วิธีจัดเรียงตารางเดือยตามค่าในคอลัมน์
นุ่น: วิธีสร้างตารางสาระสำคัญด้วยผลรวมของค่า