การวนซ้ำด้วยฟังก์ชัน iterrows()
เราได้เรียนรู้วิธีสร้าง generator จาก pandas DataFrame ไปแล้ว คราวนี้จะนำ generator นั้นมาใช้งาน และดูวิธีประยุกต์ใช้กับการวนซ้ำใน pandas DataFrame โดยยังคงใช้ชุดข้อมูล poker_hands
โดยเฉพาะอย่างยิ่ง เราต้องการหาผลรวมของแต้มไพ่ทุกใบในมือ เมื่อ index ของมือนั้นเป็นเลขคี่ โดยแต้มของไพ่จะอยู่ในคอลัมน์คี่ของ DataFrame
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การเขียนโค้ดที่มีประสิทธิภาพด้วย pandas
คำแนะนำการฝึกหัด
- ตรวจสอบว่า index ของมือไพ่เป็นเลขคี่หรือไม่
- ถ้าใช่ ให้คำนวณผลรวมของแต้มไพ่ทุกใบในมือนั้น การคำนวณอาจใช้เวลานานกว่าปกติเล็กน้อย
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
data_generator = poker_hands.iterrows()
for index, values in data_generator:
# Check if index is odd
if ____:
# Sum the ranks of all the cards
hand_sum = sum([____[1], ____[3], ____, ____, ____])