6 ตุลาคม 2558

Published ตุลาคม 06, 2558 by with 0 comment

Open Data : แสดงข้อมูลอุบัติเหตุที่เกิดจากการดื่มสุราในช่วงเทศกาลปีใหม่ 2557ในภาษาไพทอน

สวัสดีผู้อ่านทุกท่านครับ บทความนี้ผมจะพาผู้อ่านไปเขียนโปรแกรมภาษาไพทอนเพื่อประมวลผลข้อมูล Open Data ของภาครัฐ บทความนี้จะเป็นเรื่อง ข้อมูลอุบัติเหตุที่เกิดจากการดื่มสุราในช่วงเทศกาลปีใหม่ 2557 ในภาษาไพทอนกันครับ


ข้อมูลที่ผมจะใช้ในบทความนี้
ผู้บาดเจ็บและเสียชีวิต ในช่วงเทศกาล ปี 51-58_CutName_NewYear_Edit 
จัดทำโดย : สถาบันการแพทย์ฉุกเฉินแห่งชาติ 
ข้อมูลผู้บาดเจ็บและเสียชีวิตในเทศกาลปีใหม่ประจำปี 2551 - 2557 จำแนกตามโรงพยาบาลทั่วประเทศ
ลิงค์ข้อมูล http://data.go.th/DatasetDetail.aspx?id=7d61f508-d2e1-4f0c-8408-dfde29f111f5

โหลดข้อมูลไฟล์ xlsx ได้จาก
http://data.go.th/DatasetDetail.aspx?id=7d61f508-d2e1-4f0c-8408-dfde29f111f5
แล้วทำการบันทึกไฟล์เป็นไฟล์ชื่อ data.xlsx

บทความนี้ผมต้องการเฉพาะข้อมูลจำนวน % เหตุการณ์ที่เกิดจากการดิ่มสุราที่กิดขึ้นในช่วงเทศกาลปีใหม่ ปี 2557 โดยแยกตามจังหวัด และประมวลผลเป็น % จากเหตุการณ์ที่เกิดจากการดื่มสุราของแต่ละจังหวัดในระดับประเทศ เนื่องจากโค้ดที่ผมเขียนยาวมาก จึงไม่สามารถอธิบายได้หมดแบบบทความก่อน ๆ ได้
คำเตือน!
การเปิดไฟล์ xlsx ในภาษาไพทอนต้องใช้ทรัพยากรหน่วยความจำหลักค่อนข้างสูง แนะนำให้ศึกษารันโค้ดจากคอมพิวเตอร์ที่มีแรมมากกว่า 4 GB ขึ้นไป และมี CPU มากกว่า 1  GHz และอาจจะใช้ pypy แทน CPython ในการรันโค้ดนี้หรือโค้ดที่มีการเรียกใช้งานไฟล์ xlsx ที่มีขนาดใหญ่ได้
อย่าทำร้ายคอมพิวเตอร์ของคุณ ด้วยความหวังดีจากผู้เขียน


จากโค้ด ผมขออธิบายเฉพาะบางบรรทัดครับ

  • บรรทัดที่ 5 - 13 เป็นข้อมูล list จังหวัดในแต่ละภาค แล้วมีตัวแปร allthailand รวมทุกจังหวัดเข้าด้วยกัน

  • บรรทัดที่ 14 -16 เป็นการสร้างตัวแปรสำหรับใช้เก็บข้อมูลจำนวนเหตุการณ์เป็นข้อมูลชนิด dict

  • บรรทัดที่ 31 - 45 เป็นการลูปเพื่อโหลดข้อมูลจำนวนเหตุการณ์ตามที่กำหนดเข้าไปเพิ่มค่าใน dict ตามตัวแปรที่กำหนด โดยอ้างอิง index เป็นชื่อจังหวัดจากตัวแปร save บรรทัดที่ 35

  • บรรทัดที่ 60 -90 เป็นระบบสร้างไฟล์รายงานออกมาเป็นรายจังหวัดตาม list ที่มี ออกมาเป็นกราฟวงกลมแสดง % เหคุการณ์ที่เกิดจากการดื่มสุราแต่ละจังหวัด

  • บรรทัดที่ 98 -106 เป็นการหา % จากการดื่มสุราแต่ละจังหวัดมาหา % จากเหตุการณ์ที่เกิดจากการดื่มสุราทั้งประเทศ ตามที่มีในข้อมูล

ลองแกะโค้ดกันดูครับ

ลองรันโค้ด ใช้เวลาประมวลผลประมาณ 10 นาที
ผลลัพธ์

Open Data : แสดงข้อมูลอุบัติเหตุที่เกิดจากการดื่มสุราในช่วงเทศกาลปีใหม่ 2557 ในภาษาไพทอน
ดูตัวอย่างผลลัพธ์ได้ที่ https://python3.wannaphong.com/lab/python-lab1/ (ให้ทำการกำหนดการ encode หน้าเว็บเพจเป็น UTF-8) และ https://python3.wannaphong.com/lab/python-lab1/สุพรรณบุรี-ปีใหม่57.html

ดูกราฟวงกลมตามรูปได้ที่ https://python3.wannaphong.com/lab/python-lab1/เหตุการณ์ที่เกิดจากการดิ่มสุรา57.html
จะได้ไฟล์ html ที่กำหนดไว้ ให้เริ่มต้นโดยการเปิดไฟล์ index.html

โจทย์ที่ต้องนำไปพัฒนาต่อ

  • นำไปพัฒนาต่อให้แสดงกราฟทั้งปี 2551 - 2558 ในไฟล์ HTML เดียวกัน
  • ปรับแต่งออกแบบให้ไฟล์ที่ออกมาสวยงามยิ่งขึ้น
  • ปรับแต่งประสิทธิภาพของโค้ดไพทอนให้สามารถทำงานได้รวดเร็วยิ่งขึ้นกว่านี้
  • ทำกราฟปี 2551 - 2558 เป็นกราฟเส้นแต่ละปี มาเปรียบกัน
  • แสดงจำนวนโรงพยาบาลที่รักษาในข้อมูลที่รายงาน
  • จำนวนผู้บาดเจ็บและผู้เสียชีวิต
    และอื่น ๆ นำไปคิดกันดูครับ

ติดตามบทความต่อไปนะครับ
ขอบคุณครับ

0 ความคิดเห็น:

แสดงความคิดเห็น

แสดงความคิดเห็นได้ครับ :)