สำหรับบทความนี้คาดว่าหลายๆคนน่าจะได้เรียนรู้และทำความเข้าใจเกี่ยวกับเรื่องการใช้ภาษา Python ในการจัดการข้อมูลในหลายๆรูปแบบ เช่น ข้อมูลที่มีรูปแบบเป็น Excel, ข้อมูลที่มีรูปแบบเป็น csv เป็นต้น จากบทความของทางเราทั้งบทความ “ใช้งาน Python OpenPyXL to read/write Excel” และ “Python Pandas ช่วยงาน office อัตโนมัติ csv, excel ผ่าน Jupyter Notebooks” ซึ่งบทความเหล่านี้ได้อธิบายเกี่ยวกับการใช้งานภาษา Python ในการจัดการข้อมูลให้อยู่ในรูปแบบของ Excel และหลายคนอาจมีคำถามว่าทำไมเราต้องใช้ภาษา Python ในการจัดการข้อมูลแทนที่จะใช้ โปรแกรม Microsoft Excel ในการจัดการข้อมูล เราจึงสร้างบทความนี้เพื่อยกตัวอย่างการใช้งานที่ Microsoft Excel ไม่สามารถทำได้หรือทำได้ยากในขณะที่ภาษา Python นั้นสามารถจัดการได้ง่ายกว่า
ภาษา Python เป็นภาษาที่ได้รับความนิยมมาก ดังนั้นจึงมี Library ที่ถูกพัฒนาขึ้นมาเพื่อเพิ่มความสะดวกสบายให้กับผู้ใช้งาน ซึ่งถ้าพูดถึงด้านการจัดการข้อมูลในภาษา Python นั้นก็ได้มี Library ที่รองรับมากมาย เช่น OpenPyXL ใช้สำหรับการจัดการข้อมูลและสรุปผลออกมาให้อยู่ในไฟล์ .xlsx และ Library อีกตัวก็คือ pandas จะใช้สำหรับการจัดการข้อมูลต่างๆให้อยู่ในรูปของ DataFrame ที่เราจะคุ้นกันในรูปแบบของตาราง ซึ่ง Library ตัวนี้สามารถเข้าถึงไฟล์ได้ค่อนข้างหลากหลายทั้งแบบที่เป็นไฟล์ต่างๆที่เราได้รับหรือสร้างขึ้นหรือจะเป็นข้อมูลต่างๆที่ดึงออกมาจาก Internet ทั้งนี้ยังมี Library อีกหลายตัวที่สามารถใช้เพื่ออำนวยความสะดวกในด้านการจัดการข้อมูลได้ ซึ่งตรงนี่เองสามารถสรุปได้ว่าการใช้ภาษา Python ในการจัดการข้อมูลนั้นมีข้อดีกว่าตรงที่สามารถเข้าถึงข้อมูลได้เยอะกว่า เเตกต่างจาก Microsoft Excel ที่ถ้าต้องการจะดึงข้อมูลออกมาจาก Internet จะต้องคัดลอกลงมา
ตัวอย่างที่ 1 การสร้างข้อมูลตัวเลข 1-10,000 ตามลำดับลงในช่อง C
การทำงานใน Microsoft Excel
ให้ใส่เลขตัวอย่าง เช่น 1,2,3 ลงในช่อง C
ลากจุดด้านล่างขวาของข้อมูลลงมาจนถึง 10,000 (ใช้เวลาค่อนข้างนาน)
ลากกันไปยาวๆเลยครับ
การทำงานในภาษา Python
import openpyxl as xl # import library file = xl.Workbook() # สร้าง Workbook sheet = file.worksheets[0] # กำหนด worksheets for i in range(10000): # loop for 0-9999 sheet.cell(i+1,3).value = i+1 # ใส่ลงช่องที่กำหนด file.save('file.xlsx') # บันทึกไฟล์
‼️ Microsoft Excel ไม่สามารถสุ่มช่องข้อมูลที่จะกรอกข้อมูลได้
แต่ก็สามารถสุ่มตัวเลขในช่องได้โดยใช้ฟังก์ชัน "RANDBETWEEN"
ลองทำการสุ่มเลข 1-9 จำนวน 8 ครั้ง
การทำงานในภาษา Python
อธิบาย Code :
import openpyxl as xl # import library import numpy as np file = xl.Workbook() # สร้าง Workbook sheet = file.worksheets[0] # กำหนด worksheets for i in range(5): # สั่งทำงาน 5 รอบ sheet.cell(np.random.randint(1,11),3).value = np.random.randint(1,10) # สุ่มเลข 1-9 ลงในช่อง 1-10 file.save('file.xlsx') # บันทึกไฟล์
อธิบาย Code :
import openpyxl as xl file = xl.Workbook() sheet = file.worksheets[0] # กำหนด worksheets for i in range(1,10): # ทำงาน 9 รอบโดย i มีค่าตั้งเเต่ 1-9 sheet.cell(i,1).value = '*'*i file.save('file.xlsx') # บันทึกไฟล์
=IF(A1<50,0,IF(A1<55,1,IF(A1<60,1.5,IF(A1<65,2,IF(A1<70,2.5,IF(A1<75,3,IF(A1<80,3.5,4)))))))
วิธีการจะคล้ายกับของการทำงานใน Microsoft Excel
อธิบาย Code :
import openpyxl as xl file = xl.Workbook() sheet = file.worksheets[0] num = np.random.randint(35,90,10) # สุ่มเลข 10 ตัว (35-90) c = 1 # กำหนดค่า c for i in num : sheet.cell(c,1).value = i # กรอกข้อมูลช่อง A จากนี้เป็นการตัดเกรด if i>79: sheet.cell(c,2).value = 4 elif i>75: sheet.cell(c,2).value = 3.5 elif i>69: sheet.cell(c,2).value = 3 elif i>64: sheet.cell(c,2).value = 2.5 elif i>59: sheet.cell(c,2).value = 2 elif i>54: sheet.cell(c,2).value = 1.5 elif i>49: sheet.cell(c,2).value = 1 else: sheet.cell(c,2).value = 0 c=c+1 # เพิ่มค่า file.save('file.xlsx') # บันทึกไฟล์
ผลลัพธ์การคำนวณเกรดด้วย Python
จากตัวอย่างที่ 4 นี้ทำให้เห็นได้ว่าส่วนตัวของ Microsoft Excel นั้นก็สามารถที่จะคำนวณเกณฑ์หรือตัดเกรดได้ ซึ่งในภาษา Python นั้นก็สามารถที่จะทำได้ เเละคำตอบหรือผลลัพธ์ที่ออกมานั้นตรงเหมือนกันทำให้บอกได้ว่าทั้ 2 ตัวสามารถทำได้เหมือนๆกัน เเต่ข้อเเตกต่างนั้นก็มีให้เห็นอยู่ซึ่งอาจจะไม่ถือว่าเป็นจุดที่ใหญ่มากเเต่ก็อาจทำให้คิดได้ยากหรืออาจทำให้สับสนได้ ในคือการใส่สูตรเพื่อตัดเกรดของเเต่ล่ะอันในของ Microsoft Excel มีเเถวเดียวยาวๆซึ่งเหลือคนอาจจะไม่ชินหรือสับสนกันตรงนี้ได้ถ้าหากว่าเงื่อนไขนั้นมันซับซ้อนมากขึ้น จะเเต่ต่างจาก Python ตรง Code นั้นค่อนข้างเป็นระเบียบเข้าใจได้ง่ายซึ่งสามารถทำให้การที่จะเข้าไปเเก้ไขปรับปรุงก็สามารถที่จะทำได้โดยง่าย
ตัวอย่างที่ 5 การคัดลอกตารางจาก Internet เเละทำการคูณช่องใดช่องหนึ่งด้วยเลข 5
การทำงานใน Microsoft Excel
ในการที่จะคัดลอกตารางจากที่อื่นมานั้นสามารถทำได้ด้วยง่ายโดยการหาตารางที่คุณต้องการจะใช้งานจากนั้นก็ให้ทำการคัดลอกลงมาไว้ในโปรเเกรมได้เลยจากนั้นค่อยทำการเริ่มบวกเเถวที่ต้องการทีละตัว
การทำงานในภาษา Python
อธิบาย Code :
import pandas as pd df = pd.read_html('https://th.wikipedia.org/wiki/%E0%B8%9E%E0%B8%A3%E0%B8%B5%E0%B9%80%E0%B8%A1%E0%B8%B5%E0%B8%A2%E0%B8%A3%E0%B9%8C%E0%B8%A5%E0%B8%B5%E0%B8%81') df = df[1].set_index('สโมสร') df['จำนวนครั้งที่ชนะเลิศในดิวิชันสูงสุด'] = df['จำนวนครั้งที่ชนะเลิศในดิวิชันสูงสุด']*5 df.to_excel('new.xlsx')
บรรทัดที่ 1 import Library
บรรทัดที่ 2 อ่านตารางจากเว็บ
บรรทัดที่ 3 เลือกชุดตารางพร้อมกำหนด index
บรรทัดที่ 4 นำ column จำนวนครั้งที่ชนะเลิศในดิวิชันสูงสุด มาคูณ 5
บรรทัดที่ 5 บันทึก
สำหรับใครที่ไม่เข้าใจสำหรับตัวอย่างนี้นะครับสามารถไปดูในคลิปที่เราทำการสอนไว้ได้เลยครับใน YOUTUBE stackpython ซี่รี่ย์ของ pandas ครับหรือเข้ามาตามลิ้งด้านล่างนี่เลยครับ
สรุป คือ ภาษา Python ที่จะนำเข้ามาใช้งานการจักการข้อมูลเเบบนี้จะมีประสิทธิภาพมากกว่าถ้าหากเราใช้ในงานที่มีข้อมูลที่ต้องกรอกจำนวนมากโดยที่ข้อมูลเหล่านั้นจะเป็นข้อมูลที่เกี่ยวกับการเรียงลำดับหรือการสร้างเงื่อไขต่างๆ เเต่ถ้าหากคุณไม่ได้ทำงานที่มีการจัดการข้อมูลเป็นจำนวนมากๆผมก็คิดว่าใช้ Microsoft Excel ดีกว่าครับเนื่องจากมีหน้าต่างโปรเเกรมที่ทำให้เราเข้าใจได้ง่าย ซึ่งหากคุณก็เป็นคนที่ไม่ค่อยมีพื้นฐานการเขียนโปรเเกรมมากเท่าไหร่ผมเองก็คิดว่า Microsoft Excel น่าจะตอบโจทย์มากกว่าครับยกเว้นว่าคุณต้องทำงานในการจัดการข้อมูลเป็น 10,000-1,000,000 บรรทัดผมก็จะขอบอกเลยครับว่ามันจะใช้ภาษา Python จัดการได้มากกว่าจิงๆ
สำหรับบทความนี้ผมขอจบลงไว้เพียงเท่านี้ครับทางเรา STACKPYTHON คาดหวังว่าทุกคนที่อ่านบทความนี้จบ จะได้รับความรู้ครบถ้วนตามจุดประสงค์ที่ทางเราได้ตั้งไว้ข้างต้น
ขอบคุณมากครับที่เข้ามาอ่านบทความต่างๆของทาง STACKPYTHON สำหรับบทความนี้ก็ขอจบลงเพียงเท่านี้ก่อนครับ พบกันบทความหน้าได้เลยครับ มีคำถามหรือข้อเสนอแนะตรงไหนก็คอมเมนต์กันเข้ามาได้เลยนะครับ
Nu STACKPYTHON
Follow us on
Medium: STACKPYTHON
Youtube: STACKPYTHON
Facebook: STACKPYTHON
กิจกรรมที่กำลังจะมาถึง
ไม่พลาดกิจกรรมเด็ด ๆ ที่น่าสนใจ
Event นี้จะเริ่มขึ้นใน April 25, 2023
รายละเอียดเพิ่มเติม/สมัครเข้าร่วมคอร์สเรียนไพธอนออนไลน์ที่เราได้รวบรวมและได้ย่อยจากประสบการณ์จริงและเพื่อย่นระยะเวลาในการเรียนรู้ ลองผิด ลองถูกด้วยตัวเองมาให้แล้ว เพราะเวลามีค่าเป็นอย่างยิ่ง พร้อมด้วยการซัพพอร์ตอย่างดี