การใช้งาน .apply() เบื้องต้น
มาลองฝึกใช้ .apply() กัน!
ชุดข้อมูล scores ที่ให้มานั้นประกอบด้วยผลการเรียนของนักเรียนและข้อมูลพื้นฐานของพวกเขา
โจทย์คือให้นิยามฟังก์ชัน prevalence() แล้วนำไปใช้กับคอลัมน์ใน groups_to_consider ของ DataFrame scores ฟังก์ชันนี้ควรดึงกลุ่ม/หมวดหมู่ที่พบบ่อยที่สุดสำหรับคอลัมน์ที่กำหนด (เช่น หากหมวดหมู่ที่พบบ่อยที่สุดในคอลัมน์ lunch คือ standard ฟังก์ชัน prevalence() ควรคืนค่า standard)
ฟังก์ชัน reduce() จากโมดูล functools ถูก import ไว้ให้แล้ว
เคล็ดลับ: pd.Series เป็น Iterable object ดังนั้นจึงสามารถใช้การดำเนินการมาตรฐานกับมันได้
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
ฝึกทำโจทย์สัมภาษณ์งานเขียนโค้ดด้วย Python
คำแนะนำการฝึกหัด
- สร้างลิสต์ของ tuple ที่ประกอบด้วยรายการที่ไม่ซ้ำกันจากออบเจ็กต์
seriesที่รับเข้ามา พร้อมจำนวนนับของแต่ละรายการ - ดึง tuple ที่มีจำนวนนับสูงสุดโดยใช้
reduce() - คืนค่ารายการที่มีจำนวนนับสูงสุด
- นำฟังก์ชัน prevalence ไปใช้กับ DataFrame
scoresโดยระบุคอลัมน์ในgroups_to_consider
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
def prevalence(series):
vals = list(series)
# Create a tuple list with unique items and their counts
itms = [(____, ____) for x in set(____)]
# Extract a tuple with the highest counts using reduce()
res = reduce(lambda x, y: ____, ____)
# Return the item with the highest counts
return ____[____]
# Apply the prevalence function on the scores DataFrame
result = scores[groups_to_consider].____
print(result)