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

การเขียน iterator เพื่อโหลดข้อมูลเป็น chunk (3)

ตอนนี้คุ้นเคยกับการอ่านและประมวลผลข้อมูลเป็น chunk แล้ว มาต่อยอดทักษะอีกขั้นด้วยการเพิ่มคอลัมน์ใหม่ลงใน DataFrame

ต่อจากโค้ดในแบบฝึกหัดที่แล้ว จะใช้ list comprehension เพื่อสร้างค่าสำหรับคอลัมน์ใหม่ 'Total Urban Population' จากลิสต์ของ tuple ที่สร้างไว้ก่อนหน้า ทบทวนจากแบบฝึกหัดที่แล้วว่า องค์ประกอบแรกและที่สองของแต่ละ tuple คือค่าจากคอลัมน์ 'Total Population' และ 'Urban population (% of total)' ตามลำดับ ดังนั้นค่าในคอลัมน์ 'Total Urban Population' จึงเป็นผลคูณขององค์ประกอบที่หนึ่งและที่สองในแต่ละ tuple นอกจากนี้ เนื่องจากองค์ประกอบที่ 2 เป็นเปอร์เซ็นต์ จึงต้องหารผลลัพธ์ทั้งหมดด้วย 100 หรือคูณด้วย 0.01

นอกจากนี้ยังจะพล็อตข้อมูลจากคอลัมน์ใหม่นี้เพื่อสร้างการแสดงผลของข้อมูลประชากรในเมือง

ได้นำเข้าแพ็กเกจ pandas และ matplotlib.pyplot ในชื่อ pd และ plt ตามลำดับแล้ว

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

Python Toolbox

ดูคอร์ส

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

  • เขียน list comprehension เพื่อสร้างลิสต์ของค่าจาก pops_list สำหรับคอลัมน์ใหม่ 'Total Urban Population' โดย output expression ควรเป็นผลคูณขององค์ประกอบที่หนึ่งและที่สองในแต่ละ tuple ใน pops_list เนื่องจากองค์ประกอบที่ 2 เป็นเปอร์เซ็นต์ จึงต้องคูณผลลัพธ์ด้วย 0.01 หรือหารด้วย 100 ด้วย นอกจากนี้ คอลัมน์ 'Total Urban Population' ควรรับค่าเป็นจำนวนเต็มเท่านั้น ดังนั้นให้แปลง output expression เป็นจำนวนเต็มด้วย int()
  • สร้างกราฟ scatter โดยให้แกน x เป็นค่าจากคอลัมน์ 'Year' และแกน y เป็นค่าจากคอลัมน์ 'Total Urban Population'

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

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

# Code from previous exercise
urb_pop_reader = pd.read_csv('ind_pop_data.csv', chunksize=1000)
df_urb_pop = next(urb_pop_reader)
df_pop_ceb = df_urb_pop[df_urb_pop['CountryCode'] == 'CEB']
pops = zip(df_pop_ceb['Total Population'], 
           df_pop_ceb['Urban population (% of total)'])
pops_list = list(pops)

# Use list comprehension to create new DataFrame column 'Total Urban Population'
df_pop_ceb['Total Urban Population'] = [____]

# Plot urban population data
df_pop_ceb.plot(kind=____, x=____, y=____)
plt.show()
แก้ไขและรันโค้ด