Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

การสร้าง Pivot Table เป็น DataFrame ด้วย Python Pandas

บทนำ

Pivot Table เป็นเครื่องมือสำคัญในการสรุปและวิเคราะห์ข้อมูล แบบ spreadsheet-style ใน Pandas สามารถสร้างได้ด้วยฟังก์ชัน pandas.pivot_table() ซึ่งจะคืนค่าเป็น DataFrame ทันที

ขั้นตอนการสร้าง Pivot Table

  1. นำเข้าไลบรารี pandas
  2. สร้าง DataFrame ต้นทาง
  3. ใช้ pd.pivot_table() โดยระบุ index (แถว), columns (คอลัมน์), values (ค่า), และ aggfunc (ฟังก์ชันรวมข้อมูล)

ตัวอย่างโค้ด: Pivot Table พื้นฐาน

import pandas as pd

# สร้าง DataFrame ข้อมูลทีม
dataFrame = pd.DataFrame({
    'Team ID': {0: 5, 1: 9, 2: 6, 3: 11, 4: 2, 5: 7},
    'Team Name': {0: 'India', 1: 'Australia', 2: 'Bangladesh', 
                  3: 'South Africa', 4: 'Sri Lanka', 5: 'England'},
    'Team Points': {0: 95, 1: 93, 2: 42, 3: 60, 4: 80, 5: 55},
    'Team Rank': {0: 'One', 1: 'Two', 2: 'Six', 3: 'Four', 4: 'Three', 5: 'Five'}
})

print("DataFrame ต้นทาง:")
print(dataFrame)

# Pivot Table แบบง่าย: ใช้ Team ID เป็น index
pivot = pd.pivot_table(dataFrame, index=["Team ID"])
print("\nPivot Table (index=Team ID):")
print(pivot)

ผลลัพธ์

DataFrame ต้นทาง:
   Team ID   Team Name  Team Points Team Rank
0        5       India           95       One
1        9   Australia           93       Two
2        6  Bangladesh           42       Six
3       11 South Africa           60      Four
4        2  Sri Lanka           80     Three
5        7     England           55      Five

Pivot Table (index=Team ID):
       Team Points
Team ID           
2               80
5               95
6               42
7               55
9               93
11              60

ตัวอย่าง Pivot Table 進階 (หลายพารามิเตอร์)

# Pivot Table ที่ครบถ้วนกว่า
pivot_full = pd.pivot_table(
    dataFrame,
    index="Team Rank",          # แถว
    columns="Team Name",        # คอลัมน์
    values="Team Points",       # ค่าที่จะรวม
    aggfunc="mean",             # ฟังก์ชันรวม (ค่าเฉลี่ย)
    fill_value=0                # เติมค่าที่ขาดหาย
)
print(pivot_full)

พารามิเตอร์สำคัญของ pivot_table()

พารามิเตอร์คำอธิบาย
indexคอลัมน์ที่จะเป็นแถว (row labels)
columnsคอลัมน์ที่จะเป็นคอลัมน์ (column labels)
valuesคอลัมน์ที่จะนำไปคำนวณ (ถ้าไม่ระบุ จะใช้คอลัมน์ตัวเลขทั้งหมด)
aggfuncฟังก์ชันรวมข้อมูล: 'mean', 'sum', 'count', 'min', 'max', หรือฟังก์ชัน custom
fill_valueค่าที่ใช้เติมแทน NaN
marginsTrue/False - เพิ่มแถว/คอลัมน์รวม (All)

สรุป

pivot_table() ให้ความยืดหยุ่นสูงในการสรุปข้อมูลหลายมิติ เหมาะสำหรับรายงานและแดชบอร์ด สามารถรวมข้อมูลได้หลายวิธีพร้อมกันด้วยการส่ง list ของฟังก์ชันไปที่ aggfunc