การเขียน iterator เพื่อโหลดข้อมูลเป็นส่วน ๆ (1)
อีกวิธีหนึ่งในการอ่านข้อมูลที่มีขนาดใหญ่เกินกว่าจะเก็บไว้ในหน่วยความจำได้ทั้งหมด คือการอ่านไฟล์เป็น DataFrame ทีละส่วน เช่น ส่วนละ 100 แถว ตัวอย่างเช่น ด้วย pandas (import เป็น pd) สามารถใช้ pd.read_csv(filename, chunksize=100) ได้ คำสั่งนี้จะสร้าง reader object ที่ทำงานแบบ iterable ซึ่งหมายความว่าสามารถใช้ next() กับมันได้
ในแบบฝึกหัดนี้ จะได้ลองอ่านไฟล์เป็น DataFrame ขนาดเล็กด้วย read_csv() โดยใช้ข้อมูล World Bank Indicators จากไฟล์ 'ind_pop.csv' ที่อยู่ใน directory ปัจจุบัน เพื่อดูตัวชี้วัดประชากรในเขตเมืองของหลายประเทศในหลายปี
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Python Toolbox
คำแนะนำการฝึกหัด
- ใช้
pd.read_csv()เพื่ออ่านไฟล์'ind_pop.csv'โดยกำหนดขนาดของแต่ละส่วนเป็น 10 แล้วกำหนดผลลัพธ์ให้กับตัวแปรdf_reader - แสดงผลสอง chunk แรกจาก
df_reader
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Import the pandas package
import pandas as pd
# Initialize reader object: df_reader
df_reader = ____(____, ____)
# Print two chunks
print(____)
print(____)