CSV คืออะไร?

CSV ย่อมาจาก Comma-separated values เป็นรูปแบบไฟล์ที่ใช้เก็บข้อมูลประเภท Tabular (ข้อมูลที่อยู่ในรูปแบบตัวเลขและตัวอักษรเท่านั้น) และข้อมูลจะมีโครงสร้างเป็นตาราง มีโครงสร้างเป็นตารางในที่นี้ คือ มีคอลัมน์ที่เป็นหัวข้อ และมีแถวที่เป็นข้อมูลของหัวข้อนั้นๆ โดยข้อมูลบน CSV ไฟล์จะเป็นข้อมูลแบบ plain text คือ เป็นหน้ากระดาษขาวๆ และมีข้อความเป็นแถวๆเท่านั้น เริ่มแรกเรามักใช้เครื่องหมาย comma เพื่อแยกข้อมูลแต่ละคอลัมน์ออกจากกัน แต่ปัจจุบันเราสามารถใช้สัญญาลักษณ์พิเศษอื่นๆ รวมทั้งการเว้นวรรคได้ด้วย

CSV ต่างจาก Excel อย่างไร?

CSVExcel
extension.csvส่วนมากใช้ .xls และ .xlsx
formatplain 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 คือข้อมูลที่จะถูกนำมาเขียนลงในแต่ละแถว

  1. นำเข้า csv module ที่ด้านบนสุดของ module
  1. เขียนข้อมูลที่ต้องการบันทึกลงไฟล์ csv ในรูปของ dictionary
  1. สร้างไฟล์ 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