The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.

บทที่ 2 สร้างสรรค์ผลงานด้วยภาษาไพทอน

Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by Nongyao112521, 2022-04-18 09:21:57

บทที่ 2 สร้างสรรค์ผลงานด้วยภาษาไพทอน

บทที่ 2 สร้างสรรค์ผลงานด้วยภาษาไพทอน

วทิ ยาการคานวณ ม.3

บทท่ี 2 สรา้ งสรรค์ผลงาน
ด้วยภาษาไพทอน

1

การประมวลผล
สารสนเทศ

2

ทบทวนความรู ้

การสร้างแอปพลิเคชันหรือซอฟต์แวร์ประยุกต์ให้ผู้อื่นได้ใช้
งานมีหลากหลายรู ปแบบ เช่น งานกราฟฟิก งานท่ีเกี่ยวกับการ
ประมวลผลข้อมูล เคร่ืองมือทางาน ส่ื อการเรียนรู้ เกม ทาไมแอป
พลิเคชันบางอย่างได้รับความนิ ยมมาก กว่าจะมาเป็นแอปพลิเคชันที่
ดีต้องทาอย่างไรบ้าง นอกจากจะสร้างตามความสนใจของผู้พัฒนา
แล้ว ยังต้องสารวจความต้องการของผู้ใช้ ออกแบบ สร้าง และ
ทดสอบ เพื่อนาไปปรบั ปรุงให้ดีข้ึน

3
จดุ ประสงค์การเรยี นรู้

1. นั กเรียนสามารถเขียนโปรแกรมประมวลผล
สารสนเทศได้

2. นั กเรียนสามารถเขียนโปรแกรมสร้างส่ วน
ต่อประสานกราฟิกกับผูใ้ ช้

3. นั กเรยี นสามารถพัฒนาแอปพลเิ คชนั ได้

4
ทบทวนความรูก้ อ่ นเรยี น

คาสั่ง for x in range(5): ใน
ไ พ ท อ น เ ป็ น ก า ร สั่ ง ใ ห้ ว น ซ า้
จานวน 5 รอบ ถูกต้องหรอื ไม่ ?

5
ทบทวนความรูก้ อ่ นเรยี น

ห า ก ต้ อ ง ก า ร เ ขี ย น โ ป ร แ ก ร ม
ตรวจสอบท่ีมี 2 เงื่อนไข จะใช้คาสั่ง
if-elseถูกตอ้ งหรอื ไม่ ?

6
ทบทวนความรูก้ อ่ นเรยี น

หากต้องการวาดรู ปด้วยโมดูล
turtle ต้องนาเข้าโมดูลโดยใช้คาสั่ ง
from turtle import* ถูกตอ้ งหรอื ไม่ ?

7

การประมวลผลสารสนเทศ

ไพทอนมโี มดลู จานวนมากเพ่ือใช้
จัดการข้อมูล ในบทเรียนน้ี ขอแนะนา
โมดูล Pandas ที่ช่วยทางานด้านการ
ประมวลผลข้อมูล โดยผู้ใช้ต้องติดตั้ง
โมดูล Pandas และ Numpy

8
การติดตงั้ โมดลู Pandas

ในโปรแกรม PyCharm EDU

การติดต้งั โมดูล Pandas มขี ้ันตอนดังน้ี
1. เลอื กรายการเมนู
File -> Settings

9
การตดิ ตัง้ โมดลู Pandas

ในโปรแกรม PyCharm EDU

2. จะปรากฏหน้ าตา่ ง
Settings ให้เลอื ก Project
Interpreter จากนั้ นคลกิ ท่ีป่มุ +

10 การตดิ ตัง้ โมดูล Pandas
ในโปรแกรม PyCharm EDU

3.จะปรากฏหน้ าต่าง
Available Packages ให้
พิมพ์ pandas ลงในช่อง
ข้ อ ค ว า ม เ พ่ื อ ค้ น ห า แ ล้ ว
คลกิ ปุ่ม Install Package

11

โครงสรา้ งข้อมูลของ Pandas

ข้อมูลท่ีเก็บใน Pandas จะอยู่
ในรูปแบบของชุดข้อมลู ทเี่ ป็น

Series หรอื Data Frame

12

โครงสรา้ งข้อมูลของ Pandas

Series

ข้อมูลท่ีเก็บเป็น Series จะมีลักษณะ
คล้ายลิสต์ของข้อมูลหน่ึ งมิติ โดยหากผู้ใช้ไม่
กาหนดดัชนี Pandas จะกาหนดดัชนี เร่มิ ต้น
ตัง้ แต่ 0 ถึง (จานวนข้อมูลใน Series - 1)

13

ตวั อย่างท่ี 2.1 การใช้ Series

ใ น ก า ร เ ก็ บ ค ะ แ น น ส อ บ วิ ช า วิ ท ย า ก า ร ค า น ว ณ ข อ ง
นั กเรยี นชนั้ ม.3/1 จานวน 20 คน มรี ูปแบบดังนี้

import pandas as pd
s=pd.Series([18,20,15,6,9,10,20,19,17,13,16,7,14,15,20,4,12,17,19,18])
print(s)

14

ตวั อยา่ งท่ี 2.1 การใช้ Series

ผลลพั ธท์ ไ่ี ดค้ ือ

15

ตัวอยา่ งท่ี 2.1 การใช้ Series

ตัวอยา่ งท่ี 2.1 อธบิ ายไดด้ งั น้ี
1.บรรทดั ที่ 1 นาโมดลู Pandas เข้ามาในโปรแกรมแลว้ จะอา้ งถึงโมดลู น้ี ดว้ ยชื่อ pd
2.บรรทดั ท่ี 3 กาหนดให้ตัวแปร s มชี ุดข้อมูล Series ทร่ี ะบภุ ายในฟังกช์ นั Series ()
3. บรรทดั ท่ี 4 พิมพ์ชุดข้อมลู s

16

โครงสรา้ งข้อมูลของ Pandas

Data Frame

ข้ อ มู ล ท่ี เ ก็ บ เ ป็ น Data Frame จ ะ มี
ลักษณะคล้ายตาราง(สองมิติข้ึนไป) โดยหาก
ผู้ใช้ไม่กาหนดดัชนี Pandas จะกาหนดดัชนี
เร่มิ ต้นให้แต่ละมิติต้ังแต่ 0 ถึง (จานวนข้อมูล
ในแต่ละมติ ิ - 1)

17 ตัวอยา่ งท่ี 2.2
การใช้งานData Frame

df=pd.DataFrame ([[1, ‘a’], [2, ‘b’], [3, ‘c’]])
print(df)

ผลลัพธท์ ่ีได้คือ

01
11 a
22 b
2 3c

18 ตวั อยา่ งท่ี 2.2
การใช้งาน DataFrame

df=pd.DataFrame ([[1, ‘a’], [2, ‘b’], [3, ‘c’]])
print(df)

ตัวอยา่ งที่ 2.2 อธบิ ายไดด้ งั นี้
1. บรรทดั ท่ี 1 เป็นการกาหนดให้ตวั แปร df เป็นชุดข้อมลู

DataFrame ทรี่ ะบภุ ายในฟังกช์ นั DataFrame()
2. บรรทดั ท่ี 2 พิมพ์ชุดข้อมูล df

19

ไฟลข์ ้อมูลในรูปแบบซเี อสวี

ไ ฟ ล์ รู ป แ บ บ ซี เ อ ส วี ( CSV)
(comma separated values: CSV)คือ
ไ ฟ ล์ ข้ อ มู ล ท่ี แ ต่ ล ะ ตั ว ใ น แ ถ ว เ ดี ย ว กั น
ถูกคั่นด้วยเครอ่ื งหมายจุลภาค (,) โดย
อ า จ มี แ ถ ว แ ร ก สุ ด เ ป็ น ชื่ อ ข อ ง แ ต่ ล ะ
คอลัมภ์หรอื หัวตาราง

20

ไฟล์ข้อมูลในรูปแบบซเี อสวี

ตัวอย่างเช่น ข้อมูลของนั กเรียน
ชั้น ม.3/1 จานวน 20 คน ประกอบด้วย
เลขประจาตัวนั กเรียน เพศ (1 แทนเพศ
ชาย และ 2 แทนเพศหญิง) คะแนนสอบ
วิชาวิทยาการคานวณและส่ วนสูงใน
รูปแบบไฟล์ ดังตอ่ ไปน้ี

21

ไฟล์ข้อมูลในรูปแบบซเี อสวี

ตัวอย่างเช่น ข้อมูลของนั กเรียน
ชั้น ม.3/1 จานวน 20 คน ประกอบด้วย
เลขประจาตัวนั กเรียน เพศ (1 แทนเพศ
ชาย และ 2 แทนเพศหญิง) คะแนนสอบ
วิชาวิทยาการคานวณและส่ วนสูงใน
รูปแบบไฟล์ ดังตอ่ ไปน้ี

22

ไฟล์ข้อมูลในรูปแบบซเี อสวี

23

ไฟล์ข้อมูลในรูปแบบซเี อสวี

pandas มีฟังกช์ นั read_cav() เพ่ือใชใ้ นการนา
ข้อมูลจากไฟล์ CSV เข้ามาเกบ็ ใน DataFrame ดงั นี้

24

ไฟล์ข้อมูลในรูปแบบซเี อสวี

ผลลพั ธท์ ไ่ี ดค้ ือ

25

ไฟล์ข้อมูลในรูปแบบซเี อสวี

กรณีท่ีไฟล์ CSV ไม่มีแถวท่ีเป็น
ช่ือคอลัมภ์หรือหัวตาราง ผู้ใช้สามารถ
ระบุหัวตารางในการแสดงผลได้ เช่น
ถ้าไฟลข์ ้อมูลมีลักษณะดงั น้ี

26

ไฟล์ข้อมูลในรูปแบบซเี อสวี

5884,2,18,158
5885,2,20,164
5887,1,15,150
5889,1,6,168
5890,2,9,153

27

ไฟล์ข้อมูลในรูปแบบซเี อสวี

การระบุชื่อคอลัมภ์หรือหัวตาราง
ในการแสดงผล สามารถทาได้โดยใช้
ฟังกช์ นั read_csv() ดังน้ี

28

ไฟล์ข้อมูลในรูปแบบซเี อสวี

29

ไฟล์ข้อมูลในรูปแบบซเี อสวี

ผลลัพธท์ ไ่ี ดค้ ือ

30

ไฟลข์ ้อมูลในรูปแบบซเี อสวี

ข้อมูลใน DataFrame ที่รับมาจากไฟล์ CSV
นั้ น สามารถนาไปประมวลผลตามความต้องการได้
ตั ว อ ย่ า ง ที่ 2 . 3 แ ส ด ง ก า ร ร ว ม ข้ อ มู ล ( data
aggregation) แบบต่างๆเพื่อให้ไดค้ ่าผลลัพธท์ างสถิติ
ทเี่ ป็นประโยชน์ เช่น ค่าเฉลีย่ ค่าสงู สดุ ค่าตาส่ ดุ

31 ตัวอย่างท่ี 2.3
การนั บจานวนข้อมูล

การนั บจานวนข้อมลู ใน DataFrame
ทาไดโ้ ดยใชฟ้ ังกช์ นั count() เช่น

print(stdData.count())

32 ตัวอย่างท่ี 2.3
การนั บจานวนข้อมูล

จ ะ แ ส ด ง จ า น ว น ข้ อ มู ล ข อ ง แ ต่ ล ะ
คอลัมน์ ใน DataFrame ดงั น้ี

ID 20
Gender 20
CsScore 20
Height 20
dtype: int64

33 ตวั อยา่ งท่ี 2.3
การนั บจานวนข้อมูล

หากต้องการให้แสดงจานวนข้ อมูล
เพียงคอลัมน์ เดียวจาก DataFrame สามารถ
ใช้คาสั่ งในรู ปแบบต่อไปนี้

print(stdData[[‘ID’]].count())

34 ตัวอย่างท่ี 2.3
การนั บจานวนข้อมูล

จ ะ แ ส ด ง เ ฉ พ า ะ จ า น ว น ข้ อ มู ล ข อ ง
คอลัมน์ ID จาก DataFrame ดงั น้ี

ID 20
dtype: int64

35

ตวั อยา่ งท่ี 2.4 การหาค่าเฉล่ีย

หากครู ต้องการหาค่าเฉล่ียของคะแนน
สอบวิชาวิทยาการคานวณของนั กเรียนทั้งชั้น
สามารถทาไดโ้ ดยการใช้ฟังกช์ นั mean () ดงั นี้

print (stdData.CsScore.mean())

36

ตวั อยา่ งท่ี 2.4 การหาค่าเฉล่ีย

ผลลัพธท์ ไี ดค้ ือ

14.45

37 ตัวอยา่ งท่ี 2.5
การหาค่าเฉลยี่ แยกตามกลมุ่

หากครู ต้องการหาค่าเฉล่ียของคะแนนสอบ
วิชาวทิ ยาการคานวณแยกตามเพศของนั กเรยี น ทาได้
โดยการใช้ฟังกช์ ัน groupby () ของ Pandas เพ่ือจัด
กลุ่มข้อมูลแต่ละชุดท่ีเป็นข้อมูลชนิ ดเดียวกัน ก่อนท่ี
จะเรยี กฟังกช์ นั หาค่าเฉลย่ี ดงั นี้

print(stdData.groupby(‘Gender’).mean())

38

ตัวอยา่ งท่ี 2.4 การหาค่าเฉล่ยี

ผลลัพธท์ ไี ดค้ ือ

Gender ID CsScore Height
1
2 5902.75 14.166667 166.5
5899.75 14.875000 160.0

39

ตัวอยา่ งท่ี 2.4 การหาค่าเฉล่ีย

Gender ID CsScore Height
1
2 5902.75 14.166667 166.5
5899.75 14.875000 160.0

จ ะ เ ห็ น ว่ า ผ ล ลั พ ธ์ แ ส ด ง ค่ า เ ฉ ล่ี ย ข อ ง ข้ อ มู ล ใ น ทุ ก
คอลมั น์ แยกตามข้อมูล Gender รวมท้ังคอลัมน์ ID และ Height
ซ่ึงในท่ีน้ี ไม่ต้องการหาค่าเฉล่ีย สาหรับคอลัมน์ ID ซ่งึ เป็นเลข
ประจาตัวนักเรยี นแต่ละคน ไม่ควรนามาหาค่าเฉล่ีย เพราะไม่ได้
ส่ื อความหมายใด

40

ตัวอยา่ งท่ี 2.4 การหาค่าเฉล่ีย

หากต้องการให้แสดงค่าเฉล่ียเฉพาะคอลัมภ์ CsScore
ทาได้ดังน้ี

print(stdData.groupby(‘Gender’).CsScore.mean())

หรอื

print(stdData.groupby(‘Gender’).mean()[[‘CsScore’]])

41
ตวั อยา่ งที่ 2.6 การจดั เรยี งข้อมูล

หากครูตอ้ งการเรยี งลาดบั ความสูงของนั กเรยี น
จากน้ อยไปมาก เพ่ือใช้ในการจัดลาดับการเข้าแถวหน้ า
ช้ั น เ รี ย น ส า ม า ร ถ เ รี ย ง ล า ดั บ ไ ด้ โ ด ย ฟั ง ก์ ชั น
sort_values() โดยระบุช่ือคอลัมน์ ท่ีต้องการจัดเรยี งเป็น
อารก์ ิวเมนตข์ องฟังก์ชนั ดงั น้ี

print(stdData.sort_values(by=[‘Height’]))

42
ตวั อยา่ งที่ 2.6 การจดั เรยี งข้อมูล

ผลลพั ธท์ ไี่ ดค้ ือ

43
ตัวอยา่ งท่ี 2.6 การจดั เรยี งข้อมูล

หากต้องการให้เรยี งลาดับนั กเรียนตามความสูง
จากมากไปน้ อย สามารถระบุอาร์กิวเมนต์ของฟังก์ชัน
sort_values() เพ่ิมเติมไดด้ ังน้ี

print(stdData.sort_values(by=[‘Height’],ascending=False))

44
ตวั อยา่ งที่ 2.6 การจดั เรยี งข้อมูล

ผลลพั ธท์ ไี่ ดค้ ือ

45

การเชอื่ มโยงข้อมูล

ในบางสถานการณ์ ข้อมูลที่เก่ียวข้องกัน
อาจถูกเกบ็ แยกกนั ในหลายตารางหรอื หลายไฟล์ได้
เช่น หากครูมีคะแนนวิทยาศาสตร์ของนั กเรียนชั้น
ม.3/1 แยกเกบ็ อย่อู ีกไฟล์หน่ึ ง Pandas สามารถทา
การเช่ือมโยงไฟล์ข้อมูลคะแนนวิทยาการคานวณ
แ ล ะ วิ ท ย า ศ า ส ต ร์ เ ข้ า ด้ ว ย กั น เ พ่ื อ ท า ใ ห้ ก า ร
ประมวลผลข้อมลู มีความสะดวกมากข้ึน

46 ตวั อยา่ งที่ 2.7
การเชอ่ื มโยงข้อมลู จากไฟล์ 2 ไฟล์

หากมคี ะแนนวิชาวทิ ยาศาสตร์
แยกเกบ็ อยใู่ นไฟล์ CSV ช่ือ

sciScore.csv โดยมขี ้อมูลดงั น้ี

47 ตวั อยา่ งท่ี 2.7
การเชอื่ มโยงข้อมูลจากไฟล์ 2 ไฟล์

การสรา้ งข้อมูลใหม่ท่ีเกิดากการรวมข้อมูลจากทั้งสองไฟล์เข้า
ด้วยกัน ทาได้โดยให้ Pandas สรา้ งข้อมูล DataFrame จาก
ข้อมูลไฟล์ CSVของแต่ละไฟล์แล้วเช่ือมโยง DataFrame ของ
ข้อมลู ทัง้ สองโดยใช้ฟังก์ชนั merge () ดงั น้ี

48 ตัวอยา่ งที่ 2.7
การเชอ่ื มโยงข้อมลู จากไฟล์ 2 ไฟล์

ผลลัพธท์ ไี่ ดค้ ือ

49 ตวั อยา่ งท่ี 2.7
การเชอ่ื มโยงข้อมูลจากไฟล์ 2 ไฟล์

ผลจากการเชื่อมโยงข้อมูลด้วยฟังก์ชัน merge()
จะได้ Dataframe ใหม่ ซ่ึงในโปรแกรมกาหนดให้อ้างอิง
ด้วยช่ือ newData มีคอลัมน์ Science1 จากข้อมูลในไฟล์
sciScore.csv เพ่ิมเป็นคอลัมน์ สุดท้ายต่อจากข้อมูลเดิมท้ัง
4 คอลัมน์ จากไฟล์ studentData.csv ให้สั งเกต Pandas
เลือกเพ่ิมข้อมูลได้ถูกต้องตรงกันตามคอลัมน์ เลขประจาตัว
ของนักเรยี น


Click to View FlipBook Version