เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การเขียน iterator สำหรับโหลดข้อมูลแบบ chunk (2)

ในแบบฝึกหัดที่แล้ว คุณใช้ read_csv() เพื่ออ่าน DataFrame แบบ chunk จากชุดข้อมูลขนาดใหญ่ ในแบบฝึกหัดนี้ จะอ่านไฟล์โดยใช้ขนาด chunk ที่ใหญ่ขึ้น แล้วประมวลผลข้อมูลจาก chunk แรก

ในการประมวลผลข้อมูล คุณจะสร้าง DataFrame ใหม่ที่ประกอบด้วยเฉพาะแถวของประเทศหนึ่งๆ จากนั้นจะ zip สองคอลัมน์จาก DataFrame ใหม่นั้นเข้าด้วยกัน ได้แก่ 'Total Population' และ 'Urban population (% of total)' และสุดท้ายจะสร้างลิสต์ของ tuple จาก zip object โดยแต่ละ tuple ประกอบด้วยค่าจากทั้งสองคอลัมน์ที่กล่าวถึง

จะใช้ข้อมูลจาก 'ind_pop_data.csv' ซึ่งอยู่ใน directory ปัจจุบัน โดย pandas ถูก import ไว้แล้วในชื่อ pd

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Python Toolbox

ดูคอร์ส

คำแนะนำการฝึกหัด

  • ใช้ pd.read_csv() เพื่ออ่านไฟล์ 'ind_pop_data.csv' แบบ chunk ขนาด 1000 แล้วกำหนดผลลัพธ์ให้กับตัวแปร urb_pop_reader
  • ดึง DataFrame chunk แรก จาก iterable urb_pop_reader แล้วกำหนดให้กับตัวแปร df_urb_pop
  • เลือกเฉพาะแถวใน df_urb_pop ที่มี 'CountryCode' เป็น 'CEB' โดยเปรียบเทียบว่า df_urb_pop['CountryCode'] เท่ากับ 'CEB' หรือไม่ ภายในวงเล็บก้ามปู df_urb_pop[____]
  • ใช้ zip() เพื่อ zip คอลัมน์ 'Total Population' และ 'Urban population (% of total)' ของ df_pop_ceb เข้าด้วยกัน แล้วกำหนด zip object ที่ได้ให้กับตัวแปร pops

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Initialize reader object: urb_pop_reader
urb_pop_reader = pd.read_csv(____, ____)

# Get the first DataFrame chunk: df_urb_pop
df_urb_pop = next(____)

# Check out the head of the DataFrame
print(df_urb_pop.head())

# Check out specific country: df_pop_ceb
df_pop_ceb = df_urb_pop[____]

# Zip DataFrame columns of interest: pops
pops = zip(____, ____)

# Turn zip object into list: pops_list
pops_list = list(pops)

# Print pops_list
print(pops_list)
แก้ไขและรันโค้ด