สมมติว่าคุณมีสอง DataFrame และต้องการสร้างตารางข้าม (cross-tabulation) ระหว่างคอลัมน์จากทั้งสอง DataFrame
วิธีแก้ปัญหา
- สร้างสอง DataFrame
- ใช้
pd.crosstab()กำหนด index และ columns จากคอลัมน์ที่ต้องการ
ตัวอย่างโค้ด
import pandas as pd
df = pd.DataFrame({'Id': [1, 2, 3, 4, 5], 'Age': [12, 13, 12, 13, 14]})
df1 = pd.DataFrame({'Mark': [80, 90, 80, 90, 85]})
print("DataFrame 1:")
print(df)
print("\nDataFrame 2:")
print(df1)
# Cross-tabulation: index=Id, columns=[Age, Mark]
result = pd.crosstab(index=df['Id'], columns=[df['Age'], df1['Mark']])
print("\nCross-tabulation ผลลัพธ์:")
print(result)
ผลลัพธ์
DataFrame 1:
Id Age
0 1 12
1 2 13
2 3 12
3 4 13
4 5 14
DataFrame 2:
Mark
0 80
1 90
2 80
3 90
4 85
Cross-tabulation ผลลัพธ์:
Age 12 13 14
Mark 80 90 85
Id
1 1 0 0
2 0 1 0
3 1 0 0
4 0 1 0
5 0 0 1
คำอธิบาย: pd.crosstab() สร้างตารางความถี่ (frequency table) แสดงจำนวนครั้งที่เกิดการรวมกันของค่าจากคอลัมน์ต่างๆ สามารถรับหลายคอลัมน์สำหรับ columns ได้ โดยจะสร้าง MultiIndex