ลองเล่นกับ data ง่าย ๆ สไตล์ ไอซ่าแมน
ลองเล่น data แบบเริ่มต้น กับข้อมูล Covid19

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

จากนั้นจึงเริ่ม import lib ต่าง ๆ ที่ต้องใช้
#import lib ที่จำเป็น
import requests
import pandas as pd
import matplotlib.pyplot as plot
request เป็น lib สำหรับการดึงข้อมูลจาก API
pandas จะใช้สำหรับการจัดการข้อมูลในรูปแบบของ Dataframe
matplotib ส่วนตัวนี้จะใช้ในการสร้างกราฟเพื่อแสดงผล
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')
สุดท้ายเราก็ทำการสร้างกราฟขึ้นมาโดยเราจะกำหนดรูปแบบของกราฟในฟังชันก์ที่เราสร้างขึ้น

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#import lib ที่จำเป็น | |
import requests | |
import pandas as pd | |
import matplotlib.pyplot as plot | |
url_cases = "https://covid19.workpointnews.com/api/cases" | |
casesData = requests.get(url=url_cases) | |
casesData = pd.DataFrame(casesData.json()) | |
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 | |
for index , value in data.iterrows(): | |
if((value.age >= 0.0 and value.age <=120.0)): | |
pass | |
else: | |
data.age[index] = "unknown" | |
sumData = data.groupby('agegroup').count()[['age']] | |
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
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
ความคิดเห็น
แสดงความคิดเห็น