การ merge แบบหนึ่งต่อหลาย
ธุรกิจหนึ่งอาจมีเจ้าของได้หนึ่งคนหรือหลายคน ในแบบฝึกหัดนี้ จะได้ฝึก merge แบบหนึ่งต่อหลายเพิ่มเติม โดยนำตาราง biz_owners ซึ่งเก็บข้อมูลเจ้าของธุรกิจมา merge กับตาราง licenses จากบทเรียนที่ผ่านมา ในความสัมพันธ์แบบหนึ่งต่อหลาย แถวในตารางซ้ายอาจปรากฏซ้ำได้หากมีความสัมพันธ์กับหลายแถวในตารางขวา ในบทเรียนนี้ จะสำรวจเรื่องนี้ให้ลึกขึ้นโดยค้นหาตำแหน่งเจ้าของธุรกิจที่พบบ่อยที่สุด เช่น เลขานุการ, CEO, หรือรองประธาน
โหลด DataFrame licenses และ biz_owners ไว้ให้แล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การรวมข้อมูลด้วย pandas
คำแนะนำการฝึกหัด
- เริ่มต้นด้วยตาราง
licensesทางซ้าย แล้ว merge กับตารางbiz_ownersบนคอลัมน์accountจากนั้นบันทึกผลลัพธ์ไว้ในตัวแปรชื่อlicenses_owners - จัดกลุ่ม
licenses_ownersตามtitleแล้วนับจำนวน account ของแต่ละตำแหน่ง บันทึกผลลัพธ์เป็นcounted_df - เรียงลำดับ
counted_dfตามจำนวน accounts จากมากไปน้อย แล้วบันทึกเป็นตัวแปรชื่อsorted_df - ใช้เมธอด
.head()เพื่อแสดงไม่กี่แถวแรกของsorted_df
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Merge the licenses and biz_owners table on account
licenses_owners = ____
# Group the results by title then count the number of accounts
counted_df = licenses_owners.groupby(____).agg({'account':'count'})
# Sort the counted_df in descending order
sorted_df = counted_df.sort_values(____)
# Use .head() method to print the first few rows of sorted_df
print(____)