การ join หลายตาราง
ตอนนี้เราต้องการวิเคราะห์ในแนวทางใหม่ คือการแมปตำแหน่งของผู้เล่นในระหว่างการ punt อย่างที่ทราบกัน ระบบ NextGenStats (NGS) จะบันทึกตำแหน่งและทิศทางของผู้เล่นทุกคนถึง 10 ครั้งต่อวินาทีในทุกการเล่น ซึ่งเป็นข้อมูลจำนวนมาก!
ในแบบฝึกหัดนี้จะต้อง join data frame สามชุดเพื่อเตรียมข้อมูลสำหรับการวิเคราะห์ ด้านล่างนี้คือชื่อและคำอธิบายของแต่ละชุด
games: ข้อมูลระดับภาพรวมตาม GameKeypunts: ข้อมูลระดับการเล่นตาม GameKey และ PlayIdngs: ข้อมูลตำแหน่งตาม GameKey, PlayId, GSISID (รหัสผู้เล่น) และ Time
สมาชิกในทีมได้เตรียม list comprehension ไว้ในบรรทัดที่ 2 เพื่อแสดง index ของแต่ละ data frame ในโค้ดบรรทัดเดียว หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับ list comprehension ดูได้ที่คอร์ส Python Data Science Toolbox Part 2
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Pandas Joins for Spreadsheet Users
คำแนะนำการฝึกหัด
- ใช้ inner join เพื่อ join data frame ตาม index โดยใช้
gamesเป็น data frame หลัก - แสดง 10 แถวแรกของ data frame ที่ได้จากการ join
- ตรวจสอบว่า index ของ data frame ใหม่ไม่มีค่าซ้ำ
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# List the index of each data frame
print([[n for n in df.index.names] for df in [games, punts, ngs]])
# Inner join the data frames
games_all = ____.____([punts, ____], how=____)
# View first 10 rows of new frame
print(____.head(10))
# Check index for duplicates
print(____.index.____.sum())