Python Tutorial – US Births Analysis

tutorial นี้ เราสอนเขียนพื้นฐาน Python เพื่อวิเคราะห์ข้อมูลจำนวนเด็กทารกที่เกิดในประเทศอเมริการะหว่างปี 1994-2003 เพื่อนๆสามารถดาวน์โหลดไฟล์ US_births.csv ได้ที่นี่

Capture

ใน csv file จะมีทั้งหมด 5 columns

  • year
  • month
  • date_of_month
  • day_of_week
  • births

สำหรับโจทย์วันนี้คือการเขียนฟังชั่นเพื่อหาผลรวมคอลั่ม births → แยกตามคอลั่ม year, month, date_of_month และ day_of_week

ตัวอย่าง output ที่เราต้องการจะออกมาเป็น dictionary หน้าตาแบบนี้ {“1994”: 500, “1995”: 1000, “1996”: 1500} โดยมี key เป็นปี (หรือคอลั่มอื่นๆ) ส่วน value คือผลรวมของคอลั่ม births

Refresher

สำหรับ tutorial นี้ assume ว่าเพื่อนๆเขียน Python ได้นิดหน่อย เข้าใจว่า dictionary คืออะไร? รวมถึงการเขียน control flow ง่ายๆ เช่น if-else และ for loop

ถ้าพร้อมแล้วก็เริ่มกันเลย tutorial นี้ใช้เวลาประมาณ 10 นาที เราจะเขียน Python กันบน Google Colab ไม่ต้อง install python ในคอมพิวเตอร์ให้เสียเวลา 😛

Note – google colab ทำงานได้ดีบน personal computer และต้องใช้ chrome web browser เท่านั้น (ถ้าใครใช้คอมบริษัท บางทีจะเปิด colab ไม่ขึ้น ให้กลับไปลองทำ tutorial นี้ที่บ้านอีกที)


Open File

ขั้นตอนที่หนึ่ง (2 นาที) – upload csv.file ขึ้นไปที่ google colab

code ด้านล่างนี้เป็น standard template สำหรับอัพโหลดไฟล์ csv ขึ้นไปที่ google colab (line 2-3) รวมถึงการเปิด อ่าน และปิดไฟล์ (line 7-9)

อธิบาย line 7 ในฟังชั่น open() เราใช้ "r" คือการบอก Python ให้เปิดไฟล์แบบ read only

Basic Data Analysis

ขั้นตอนที่สอง (5 นาที) – ทำความสะอาด และเขียน for loop เพื่อวิเคราะห์ข้อมูล

data ที่อัพโหลดขึ้นไปตอนนี้จะอยู่ในรูปแบบของ string object ขั้นตอนแรกคือการ split string ด้วย "\n" และ slice data[1:] เพื่อลบ column names ใน index 0 ออกไปก่อน (line 2-3)

  • line 10 เราสร้าง empty dictionary ขึ้นมาเพื่อเก็บ result ที่เราต้องการ
  • line 11-17 เราเขียน for loop กับ if-else วิเคราะห์ข้อมูลแต่ละ row ใน data file ของเราเพื่ออัพเดท result dictionary ซึ่งจะเหมือนกับ tutorial Count The Dogs ที่เราเคยเขียนไว้
  • line 20 ลอง print result ออกมาดู

output ที่ได้จากโค้ดนี้คือ dictionary ที่มี key คือคอลั่ม year (index 0) และ value คือผลรวมของคอลั่ม births (index 4)

Function

ขั้นตอนที่สาม (3 นาที) – เขียน function สำหรับใช้งานกับ csv file อื่นๆ

เราสามารถเขียน wrap code ด้านบนของเราเป็น function โดยฟังชั่นนี้รับ 3 arguments

  • data – ไฟล์ csv ที่เราเตรียมไว้
  • k – คอลั่ม index ที่เราจะใช้เป็น key
  • v – คอลั่ม index ที่เราจะหาผลรวมเป็น value

ทดสอบ function ที่เราเขียนกับคอลั่มอื่นๆใน US Births data

Well done !! ตอนนี้เพื่อนๆสามารถเขียน function ง่ายๆเพื่อวิเคราะห์ข้อมูลใน spreadsheet ได้แล้ว อยากอ่าน tutorial แบบไหนอีก? comment บอกเราได้เลยใต้บทความนี้ 😎


Reference

ขอบคุณ example dataset จาก dataquest.io

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.