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

เขียนโค้ด Python หา cross-tabulation ของสอง DataFrame

สมมติว่าคุณมีสอง DataFrame และต้องการสร้างตารางข้าม (cross-tabulation) ระหว่างคอลัมน์จากทั้งสอง DataFrame

วิธีแก้ปัญหา

  1. สร้างสอง DataFrame
  2. ใช้ 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