CSV คืออะไร?
CSV ย่อมาจาก Comma-separated values เป็นรูปแบบไฟล์ที่ใช้เก็บข้อมูลประเภท Tabular (ข้อมูลที่อยู่ในรูปแบบตัวเลขและตัวอักษรเท่านั้น) และข้อมูลจะมีโครงสร้างเป็นตาราง มีโครงสร้างเป็นตารางในที่นี้ คือ มีคอลัมน์ที่เป็นหัวข้อ และมีแถวที่เป็นข้อมูลของหัวข้อนั้นๆ โดยข้อมูลบน CSV ไฟล์จะเป็นข้อมูลแบบ plain text คือ เป็นหน้ากระดาษขาวๆ และมีข้อความเป็นแถวๆเท่านั้น เริ่มแรกเรามักใช้เครื่องหมาย comma เพื่อแยกข้อมูลแต่ละคอลัมน์ออกจากกัน แต่ปัจจุบันเราสามารถใช้สัญญาลักษณ์พิเศษอื่นๆ รวมทั้งการเว้นวรรคได้ด้วย
CSV ต่างจาก Excel อย่างไร?
CSV | Excel | |
extension | .csv | ส่วนมากใช้ .xls และ .xlsx |
format | plain text (เก็บข้อมูลที่เป็นตัวอักษรและตัวเลขเท่านั้น) | binary file format (เก็บข้อมูลตัวอักษร, ตัวเลข, กราฟ, รูปภาพ แม้แต่การแนบลิ้งค์ไปที่เว็บไซต์ใดๆก็ทำได้) |
การคิดคำนวณ | ไม่สามารถคำนวณอะไรได้ อ่านได้อย่างเดียว | เป็น spreadsheet application ทำให้ผู้ใช้ทำการคำนวณบนไฟล์ได้เลย นอกจากนั้นยังสร้างกราฟต่างๆได้อีกด้วย |
พื้นที่จัดเก็บ | ไฟล์มีขนาดเล็ก ใช้พื้นที่จัดเก็บน้อย | ไฟล์มีขนาดใหญ่ จำเป็นต้องมีพื้นที่จัดเก็บมากกว่า |
การใช้งาน | ส่วนใหญ่จะใช้สำหรับ data analysis และ data visualisation | ใช้ได้ตั้งแต่งานเล็กๆในชีวิตประจำวัน และงานใหญ่ๆ เช่น การสร้างกราฟที่สำคัญต่างๆ |
ผู้ใช้งาน | มักเป็นผู้เชี่ยวชาญงานด้าน IT ที่ต้องนำเข้าและจัดเก็บข้อมูล รวมถึงวิเคราะห์ข้อมูล | ตั้งแต่ผู้ใช้งานทั่วไปจนถึงผู้เชี่ยวชาญในสายงานต่างๆ |
CSV และ Python
ในบทความนี้เราจะสาธิตวิธีสร้างไฟล์ csv ด้วยภาษา Python และ CSV module (เป็น built-in function ที่ช่วยให้ Python สร้างไฟล์ CSV ได้)
สาธิตสร้าง CSV ด้วย Python
ด้านล่างนี้เป็นตัวอย่างข้อมูลที่เราจะนำมาใช้ในการสาธิตสร้างไฟล์ CSV ครั้งนี้
header = [‘sample_id’, ‘run_kg’, ‘weight’]
data = [ [‘a213’, 15, 54], [‘b453’,10, 57], [‘k864’,3,67],[‘p673’,5,59], [‘q336’,13,55],[‘m893’,8,58],[‘z746’,17,52],[‘d732’,11, 55], [‘n897’,1,69],[‘c591’,0,80], [‘x409’,5,58], [‘r372’,6,58], [‘t887’,3,66], [‘u639’,15,53],[‘e367’,18,51]]
เราสมมติกลุ่มตัวอย่างขึ้นมา 15 ตัวอย่าง แต่ละตัวอย่างจะมีข้อมูลไอดี ระยะทางที่วิ่ง(กิโลเมตร)ต่อวัน และน้ำหนักตัว(กิโลกรัม)
ในช่อง header เป็นชื่อคอลัมน์ ในขณะที่ data คือข้อมูลที่จะถูกนำมาเขียนลงในแต่ละแถว
- นำเข้า csv module ที่ด้านบนสุดของ module

- เขียนข้อมูลที่ต้องการบันทึกลงไฟล์ csv ในรูปของ dictionary

- สร้างไฟล์ csv และเขียนข้อมูลตัวอย่างลงไฟล์

with เป็น statement ที่ช่วยสร้าง context manager มันจะช่วยปิดไฟล์ให้เราทันทีที่เราใช้งานเสร็จแล้ว (ไม่งั้นจะต้องเรียก method ที่ชื่อว่า close() อีกตัวหนึ่งเพื่อปิดไฟล์เอง)
open() เป็นฟังก์ชั่นที่ใช้เปิดไฟล์เมื่อเราต้องการอ่านหรือเขียนไฟล์ ในวงเล็บ เราต้องเขียน path ไฟล์ หรือที่อยู่ที่เราต้องการจัดเก็บไฟล์ ว่าไฟล์ที่เราสร้างนี้จะให้จัดเก็บในโฟลเดอร์ไหน และตัวสุดท้ายให้ตั้งชื่อไฟล์และใส่ extension .csv
ในตัวอย่างด้านบน path คือ /Users/maria/eclipse-workspace/
และชื่อไฟล์คือ sample.csv
เมื่อนำมาต่อกันจะได้เป็น /Users/maria/eclipse-workspace/sample.csv
‘w’ เป็นการระบุว่าไฟล์ที่เปิดออกมา ต้องเป็นไฟล์แบบ write mode หรือเปิดออกมาเพื่อเขียนนั่นเอง
newline=’ ‘ เป็นการระบุการขึ้นบรรทัดใหม่ จาก Python Documentary แนะนำให้ใส่ทุกครั้ง เพื่อป้องกันความผิดพลาดจากการเพิ่ม newline escapse characters เช่น /n หรือ /r จากบาง platform ซึ่งจะขัดแย้งกับ CSV Module
ไฟล์ที่ได้จะถูกสร้างใน path ที่เราระบุ

ไฟล์ที่ได้จะอยู่ในรูปของ CSV
