เชื่อมข้อมูลทั้งหมดเข้าด้วยกัน!
ในบทเรียนที่ผ่านมา เราได้ดำเนินงานส่วนใหญ่ในการเชื่อมโยงข้อมูลระหว่าง restaurants และ restaurants_new เรียบร้อยแล้ว ไม่ว่าจะเป็นการสร้างคู่แถวที่อาจตรงกัน การค้นหาข้อมูลที่ตรงกันทุกประการในคอลัมน์ cuisine_type และ city รวมถึงการเปรียบเทียบความคล้ายคลึงของสตริงในคอลัมน์ rest_name โดยได้เก็บ DataFrame ที่บันทึกคะแนนไว้ใน potential_matches
ถึงเวลาเชื่อมทั้งสอง DataFrame เข้าด้วยกันแล้ว โดยจะเริ่มจากการดึง index ของแถวทั้งหมดใน restaurants_new ที่ตรงกันตามคอลัมน์ที่กล่าวถึงจาก potential_matches จากนั้นกรองแถวใน restaurants_new ตาม index เหล่านั้น และสุดท้ายเชื่อมเฉพาะค่าที่ไม่ซ้ำกันเข้ากับ restaurants ทุก DataFrame พร้อมใช้งานในสภาพแวดล้อมของคุณ พร้อมกับ pandas ที่ import ไว้เป็น pd แล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การทำความสะอาดข้อมูลใน Python
คำแนะนำการฝึกหัด
- กรองแถวใน
potential_matchesที่มีผลรวมตามแถวมากกว่าหรือเท่ากับ 3 โดยใช้เมธอด.sum() - ดึง column index ที่สองจาก
matchesซึ่งแทน index ของแถวที่ตรงกันในrestaurants_newโดยใช้เมธอด.get_level_values() - กรองแถวใน
restaurants_newที่ไม่อยู่ในmatching_indices - เชื่อม
restaurantsและnon_dupเข้าด้วยกัน
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Isolate potential matches with row sum >=3
matches = ____[____.___(____) >= ____]
# Get values of second column index of matches
matching_indices = matches.____.____(____)
# Subset restaurants_new based on non-duplicate values
non_dup = ____[~restaurants_new.index.____(____)]
# Concatenate restaurants and non_dup
full_restaurants = pd.____([____, ____])
print(full_restaurants)