“การสร้างแอปพลิเคชันหรือซอฟต์แวร์ประยุกต์ให้ผู้อื่นใช้งานมีหลายรูปแบบ เช่น งานกราฟฟิก งานที่เกี่ยวกับการประมวลผลข้อมูล เครื่องมือทำงาน สื่อการเรียนรู้ หรือเกม แล้วเพราะเหตุใดทำไมแอปพลิเคชันบางตัวจึงได้รับความนิยมเป็นอย่างมาก กว่าจะมาเป็นแอปพลิเคชันที่ดีต้องผ่านขั้นตอนอย่างไรมาบ้าง นอกจากสร้างแอปพลิเคชันตามความสนใจของผู้พัฒนาแล้ว ยังต้องสำรวจความต้องการของผู้ใช้ ออกแบบ สร้าง และทดสอบ เพื่อนำไปปรับปรุงผลงานให้ดียิ่งขึ้น โดยจะขอกล่าวถึงการพัฒนาแอปพลิเคชันด้วยภาษาไพทอน ซึ่งกำลังได้รับความนิยมในการใช้สร้างแอปพลิเคชันในปัจจุบัน”
1. การติดตั้งโมดูล Pandas ในโปรแกรม Thonny
ในบทเรียนนี้เราจะใช้ IDE ที่ชื่อว่า Thonny ในการเขียนโปรแกรมภาษา Python ซึ่งตัวโปรแกรมสามารถคอมไพล์ (compile) โค้ดคำสั่งพื้นฐานได้เลย แต่เนื่องด้วยในบทเรียนนี้ เราจำเป็นต้องใช้โมดูล Pandas เข้ามาช่วยในการประมวลผล ดังนั้น เราต้องติดตั้งโมดูลเสริมก่อนเริ่มเขียนโปรแกรม
1.1 เปิดโปรแกรม Thonny ขึ้นมา (ถ้ายังไม่มีสามารถดาวน์โหลดและติดตั้งได้ที่ https://thonny.org)
1.2 ที่เมนู “Tools” เลือก “Manage packages…”
1.3 พิมพ์ค้นหาคำว่า “pandas” หลังจากนั้นคลิกที่ “Find package from PyPl” เมื่อพบแล้วคลิกที่ “Install” รอสักครู่
1.4 เมื่อเสร็จแล้วคลิกที่ปุ่ม “Close”
2. โครงสร้างข้อมูลของ Pandas
เป็นข้อมูลที่เก็บอยู่ในรูปแบบของชุดข้อมูลแบบ Series หรือ DataFrame ดังนี้
2.1 ข้อมูลที่เก็บเป็น Series
ข้อมูลที่เก็บเป็น Series มีลักษณะคล้ายลิสต์ของข้อมูลหนึ่งมิติ หากผู้ใช้ไม่กำหนดดัชนี Pandas จะกำหนดดัชนีเริ่มต้นตั้งแต่ 0 ถึง จำนวนข้อมูลใน Series – 1 ดังตัวอย่างต่อไปนี้
import pandas as pd
s=pd.Series ([18,20,15,6,9,10,20,19,17,13,16,7,14,15,20])
print(s)
ผลลัพธ์ที่ได้
อธิบายโปรแกรม
บรรทัดที่ 1 นำโมดูล pandas เข้ามาใช้ในโปรแกรม แล้วอ้างถึงข้อมูลนี้ด้วยชื่อ pd
บรรทัดที่ 2 กำหนดตัวแปร s เป็นชุดข้อมูล Series ที่ระบุภายในฟังก์ชัน Series()
บรรทัดที่ 3 แสดงผลชุดข้อมูลในตัวแปร s
2.2 ข้อมูลที่เก็บเป็น DataFrame
ข้อมูลที่เก็บเป็น DataFrame มีลักษณะคล้ายตาราง (สองมิติขึ้นไป) หากผู้ใช้ไม่กำหนดดัชนี Pandas จะกำหนดดัชนีเริ่มต้นตั้งแต่ 0 ถึง จำนวนข้อมูลในแต่ละมิติ – 1 ดังตัวอย่างต่อไปนี้
import pandas as pd
df=pd.DataFrame([[1,’a’],[2,’b’],[3,’c’]])
print(df)
ผลลัพธ์ที่ได้
อธิบายโปรแกรม
บรรทัดที่ 1 นำโมดูล pandas เข้ามาใช้ในโปรแกรม แล้วอ้างถึงข้อมูลนี้ด้วยชื่อ pd
บรรทัดที่ 2 กำหนดตัวแปร df เป็นชุดข้อมูล DataFrame เป็นชุดข้อมูล DataFrameที่ระบุภายในฟังก์ชัน DataFrame()
บรรทัดที่ 3 แสดงผลชุดข้อมูลในตัวแปร df
2.3 ไฟล์ข้อมูลในรูปแบบซีเอสวี
ไฟล์รูปแบบซีเอสวี หรือ CSV (comma separated values: CSV) เป็นไฟล์ข้อมูลที่ข้อมูลแต่ละตัวในแถวเดียวกัน (บรรทัดเดียวกัน) ถูกคั่นด้วยเครื่องหมาย , (comma) โดยอาจมีแถวแรกสุดเป็นชื่อของแต่ละคอลัมน์หรือหัวตาราง ตัวอย่างเช่น ข้อมูลนักเรียน 20 คน ประกอบด้วยเลขประจำตัวนักเรียน เพศ (1 แทนเพศชาย 2 แทนเพศหญิง) คะแนนสอบวิชาวิทยาการคำนวณ และส่วนสูง มีรูปแบบข้อมูลดังนี้
(สามารถดาวน์โหลดไฟล์นี้ได้จากเว็บไซต์ http://oho.ipst.ac.th/studentData.csv หรือคลิกที่ปุ่มด้านล่าง)
เมื่อได้ไฟล์ CSV มาแล้ว ขั้นตอนต่อไปเราจะเริ่มประมวลผลข้อมูลโดยการใช้ฟังก์ชัน read_csv() เพื่อนำข้อมูลจากไฟล์ CSV เข้ามาเก็บใน DataFrame โดยในตัวอย่างนี้เราจะเขียนโปรแกรมใน https://repl.it เนื่องจากสามารถจัดการไฟล์ได้ง่ายกว่าThonny มีขั้นตอนดังนี้
2.3.1 เข้าเว็บไซต์ https://repl.it คลิกที่เครื่องหมาย + ที่มุมขวาบน เลือกภาษาที่เรากำลังเรียน นั่นคือ “Python”
2.3.2 พิมพ์ชื่องานตามต้องการ แล้วคลิกที่ปุ่ม “Create repl”
2.3.3 พิมพ์คำสั่งตามด้านล่างนี้ เสร็จแล้วคลิกที่ปุ่ม “Run” แล้วรอสักครู่
import pandas as pd
sdata=pd.read_csv(‘studentData.csv’,delimiter=’,’)
print(sdata)
2.3.4 เมื่อ Run เสร็จแล้ว จะเห็นว่าโปรแกรมไม่สามารถรันได้ เนื่องจากโปรแกรมหาไฟล์ไม่พบ ให้เราทำการแดรกเมาส์ลากไฟล์ studentData.csv ไปใส่ในโปรแกรม แล้วกดปุ่ม “Run” อีกครั้ง จะเห็นว่าโปรแกรมแสดงผลไฟล์ของเราได้แล้ว
นอกจากนี้ ในการแสดงข้อมูลใน DataFrame ออกทางจอภาพ สามารถใช้ฟังก์ชัน print() แสดงผลลัพธ์ในรูปแบบต่างๆ ได้ โดยสามารถทดลอง Run คำสั่งต่างๆ ตามตัวอย่าง แล้วทำความเข้าใจ พร้อมอธิบายการทำงานของการใช้คำสั่งแต่ละแบบได้
print(sdata) #แสดงข้อมูลทั้งหมดใน DataFrame
print(sdata.head(2)) #แสดงข้อมูล 2 แถวแรก (2 บรรทัดบนสุด)
print(sdata.tail(2)) #แสดงข้อมูล 2 แถวสุดท้าย (2 บรรทัดล่างสุด)
2.4 การนับจำนวนข้อมูลแต่ละคอลัมน์ใน DataFrame
ข้อมูลใน DataFrame ที่รับมาจากไฟล์ CSV นั้น สามารถนำไปประมวลผลตามที่ต้องการ เพื่อให้ได้ผลลัพธ์ทางสถิติที่เป็นประโยชน์ เช่น ค่าเฉลี่ย ค่าสูงสุด ค่าต่ำสุด จำนวนข้อมูล เป็นต้น
การนับจำนวนข้อมูลแต่ละคอลัมน์ใน DataFrame ทำได้โดยใช้ฟังก์ชัน count() ดังนี้
import pandas as pd
sdata=pd.read_csv(‘studentData.csv’,delimiter=’,’)
print(sdata.count())
ผลลัพธ์ที่ได้
การนับจำนวนข้อมูลเพียงคอลัมน์เดียวจาก DataFrame สามารถใช้คำสั่งในรูปแบบต่อไปนี้
import pandas as pd
sdata=pd.read_csv(‘studentData.csv’,delimiter=’,’)
print(sdata[‘เลขประจำตัว‘].count())
ผลลัพธ์ที่ได้
2.5 การทำข้อมูลให้เป็นภาพ
การทำให้ข้อมูลให้เป็นภาพ (Data Visualization) เป็นขั้นตอนหนึ่งของการประมวลผลข้อมูลขนาดใหญ่ เพื่อให้การนำเสนอข้อมูลจำนวนมากเข้าใจได้ง่ายขึ้นกว่ารูปแบบตาราง พร้อมนำผลสรุปที่ได้ไปใช้ประโยชน์ได้อย่างชัดเจน ซึ่งอาจะนำเสนอได้ทั้งรูปภาพ แผนภูมิ หรือสื่อที่มีปฏิสัมพันธ์กับผู้ใช้งาน (Interactive Media) เช่นคลิปวิดีโอ หรือเว็บไซต์แสดงข้อมูล โดยอาศัยโมดูล matplotlib ที่เป็นโมดูลที่ได้รับความนิยม สำหรับนำเสนอข้อมูลด้วยภาพในภาษาไพทอน มีขั้นตอนดังนี้
2.5.1 เข้าเว็บไซต์ https://repl.it คลิกที่เครื่องหมาย + ที่มุมขวาบน เลือกภาษาที่เรากำลังเรียน นั่นคือ “Python”
2.5.2 พิมพ์ชื่องานตามต้องการ แล้วคลิกที่ปุ่ม “Create repl”
2.53 พิมพ์คำสั่งตามด้านล่างนี้
import pandas as pd
import matplotlib.pyplot as plt
stdData=pd.read_csv(‘studentData-noHeader.csv’,delimiter=’,’,names=[‘ID’,’Gender’,’CsScore’,’Height’])
sciData=pd.read_csv(‘sciScore.csv’,delimiter=’,’)
newData=stdData.merge(sciData,left_on=’ID’,right_on=’เลขประจำตัว‘,how=’inner’)
print(newData)
newData.CsScore.hist(range=[0,20],bins=21)
plt.title(‘Computing Science Test Score Frequency’)
plt.xlabel(‘CsScore’)
plt.ylabel(‘Frequency’)
plt.axis([0,20,0,5])
plt.xticks(range(0,21,2))
plt.show()
2.5.4 ทำการเพิ่มไฟล์ studentData-noHeader.csv และ sciScore.csv
2.5.5 เมื่อเพิ่มไฟล์ทั้ง 2 เสร็จแล้วคลิกที่ปุ่ม “Run” จะได้ผลลัพธ์ดังภาพ
2.6 การนำเสนอด้วยแผนภาพการกระจาย
การนำเสนอด้วยแผนภาพการกระจาย สามารถสร้างแผนภาพการกระจายระหว่างคะแนนวิชาวิทยาการคำนวณและวิทยาศาสตร์ เพื่อให้เห็นความสามารถทางวิทยาการคำนวณและวิทยาศาสตร์ของนักเรียนแต่ละคน จากตัวอย่างโปรแกรมต่อไปนี้ มีขั้นตอนดังนี้
2.5.1 เข้าเว็บไซต์ https://repl.it คลิกที่เครื่องหมาย + ที่มุมขวาบน เลือกภาษาที่เรากำลังเรียน นั่นคือ “Python”
2.5.2 พิมพ์ชื่องานตามต้องการ แล้วคลิกที่ปุ่ม “Create repl”
2.53 พิมพ์คำสั่งตามด้านล่างนี้
import pandas as pd
import matplotlib.pyplot as plt
stdData=pd.read_csv(‘studentData-noHeader.csv’,delimiter=’,’,names=[‘ID’,’Gender’,’CsScore’,’Height’])
sciData=pd.read_csv(‘sciScore.csv’,delimiter=’,’)
newData=stdData.merge(sciData,left_on=’ID’,right_on=’เลขประจำตัว‘,how=’inner’)
print(newData)
plt.scatter(newData.CsScore,newData.Science1)
plt.xlabel(‘Computing Science score’)
plt.ylabel(‘Science score’)
for i in range(0,20):
plt.text(newData.CsScore[i],newData.Science1[i],newData.ID[i])
plt.title(‘Computing Science score & Science score relationship’)
plt.show()
2.5.4 ทำการเพิ่มไฟล์ studentData-noHeader.csv และ sciScore.csv2.5.5 เมื่อเพิ่มไฟล์ทั้ง 2 เสร็จแล้วคลิกที่ปุ่ม “Run” จะได้ผลลัพธ์ดังภาพ
อ้างอิง : สถาบันส่งเสริมการสอนวิทยาศาสตร์และเทคโนโลยี, “เทคโนโลยี(วิทยาการคำนวณ)”, โรงพิมพ์แห่งจุฬาลงกรณ์มหาวิทยาลัย, ศูนย์หนังสือแห่งจุฬาลงกรณ์มหาวิทยาลัย, 2562 หน้า 18