เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การ join หลายตาราง

ตอนนี้เราต้องการวิเคราะห์ในแนวทางใหม่ คือการแมปตำแหน่งของผู้เล่นในระหว่างการ punt อย่างที่ทราบกัน ระบบ NextGenStats (NGS) จะบันทึกตำแหน่งและทิศทางของผู้เล่นทุกคนถึง 10 ครั้งต่อวินาทีในทุกการเล่น ซึ่งเป็นข้อมูลจำนวนมาก!

ในแบบฝึกหัดนี้จะต้อง join data frame สามชุดเพื่อเตรียมข้อมูลสำหรับการวิเคราะห์ ด้านล่างนี้คือชื่อและคำอธิบายของแต่ละชุด

  • games: ข้อมูลระดับภาพรวมตาม GameKey
  • punts: ข้อมูลระดับการเล่นตาม GameKey และ PlayId
  • ngs: ข้อมูลตำแหน่งตาม 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())
แก้ไขและรันโค้ด