ลองเล่นกับ data ง่าย ๆ สไตล์ ไอซ่าแมน

ลองเล่น data แบบเริ่มต้น กับข้อมูล Covid19

  

สวัสดีครับในช่วงที่โรคระบาดแบบนี้ หลาย ๆ คนก็คงจะหลีเลี่ยงการออกไปพบปะผู้คน หนึ่งในการใช้เวลาว่างให้เกิดประโยชน์นั้นแต่ละคนก็จะมีวิธีการที่ต่างกันสำหรับผมก็คือจะเริ่มฝึกทักษะทางด้านการวิเคราะห์ข้อมูลให้มากขึ้น ซึ่งในวันนี้ผมจะมานำเสนอการวิเคราะห์ข้อมูล Covid-19 แบบสั้น ๆ เริ่มต้นตั้งแต่การดึงข้อมูลจาก API การทำความสะอาดข้อมูล ไปจนถึงการวิเคราะห์แบบง่าย ๆ ด้วยการ plot กราฟ ถ้าพร้อมแล้วไปลุยกันเลย
ก่อนอื่นให้เราเข้าไปที่ https://colab.research.google.com/ เราจะใช้เจ้า colab นี่และในการฝึก โดยใน colab นี้จะใช้ภาษา python เป็นหลักนะครับ ให้เราสร้าง notebook ขึ้นมา 1 อันจะได้หน้าตาแบบนี้



หน้าตา notebook ของเรา

จากนั้นจึงเริ่ม import lib ต่าง ๆ ที่ต้องใช้

#import lib ที่จำเป็น
import requests
import pandas as pd
import matplotlib.pyplot as plot


request เป็น lib สำหรับการดึงข้อมูลจาก API
pandas จะใช้สำหรับการจัดการข้อมูลในรูปแบบของ Dataframe
matplotib ส่วนตัวนี้จะใช้ในการสร้างกราฟเพื่อแสดงผล

url_cases = "https://covid19.workpointnews.com/api/cases"
casesData =   requests.get(url=url_cases)

ต่อมาจะเป็นการดึงข้อมูลจาก API web ของ covid19.workpointnew.com ซึ่งต้องขอขอบคุณมา ณ ที่นี้

data = casesData.copy()
data['agegroup'] = 'unknown'
ageGroup = {}
ageGroup['1-20'] = (1,20)
ageGroup['20-40'] = (20,40)
ageGroup['40-60'] = (40,60)
ageGroup['60+'] = (60,120)
for k in ageGroup.keys():
  lb,ub = ageGroup[k]
  data['agegroup'][(data['age']>=lb) & (data['age']<ub)] = k

จากนั้นเราจะทำการแบ่งกลุ่มของข้อมูลของข้อมูลเป็น 5 กลุ่มดังนี้โดยกลุ่มแรกเป็น กลุ่มอายุตั้งแต่ 1–20 ปี ถัดมาคือ 20–40 ปี , 40–60 ปี 60 ปีขึ้นไป , และ กลุ่มที่ไม่ทราบอายุจะระบุว่าเป็น unknown


for index , value in data.iterrows():
  if((value.age >= 0.0 and value.age <=120.0)):
    pass
  else:
    data.age[index] = "unknown"

ถัดมาก็คือเราจะทำความสะอาดข้อมูลโดยการเปลี่ยนข้อมูลอายุที่ไม่ได้อยู่ในช่วง 0–120 ปี ให้เป็นข้อมูลที่ไม่ระบุนั่นก็คือ unknown

def plotbar(data,index,name):
  posList = range(len(data))
  plot.figure(figsize=(16, 6))
  plot.bar(posList,data)
  plot.title(name)
  plot.xticks(posList, index,rotation='vertical')
  plot.grid()
  plot.show()
plotbar(sumData['age'].values,sumData.index.values,'test deta of Covit-19')

สุดท้ายเราก็ทำการสร้างกราฟขึ้นมาโดยเราจะกำหนดรูปแบบของกราฟในฟังชันก์ที่เราสร้างขึ้น



โดยเราจะได้กราฟหน้าตาประมาณนี้


จบแล้วเป็นยังไงกันบ้าง จากชุดข้อมูลก็คือเราจะเห็นข้อมูลที่ไม่ทราบอายุเยอะเลย วิธีการทำความสะอาดข้อมูลอาจจะมีวิธีที่ดีกว่านี้ ยังไงก็ลองแนะนำมากกันได้นะครับ




https://medium.com/@tao.isaman/%E0%B8%A5%E0%B8%AD%E0%B8%87%E0%B9%80%E0%B8%A5%E0%B9%88%E0%B8%99%E0%B8%81%E0%B8%B1%E0%B8%9A%E0%B8%82%E0%B9%89%E0%B8%AD%E0%B8%A1%E0%B8%B9%E0%B8%A5%E0%B9%81%E0%B8%9A%E0%B8%9A%E0%B9%80%E0%B8%A3%E0%B8%B4%E0%B9%88%E0%B8%A1%E0%B8%95%E0%B9%89%E0%B8%99-%E0%B8%81%E0%B8%B1%E0%B8%9A%E0%B8%82%E0%B9%89%E0%B8%AD%E0%B8%A1%E0%B8%B9%E0%B8%A5-covid19-9191a2da616f

ความคิดเห็น

บทความที่ได้รับความนิยม