โซลูชันที่ปราศจาก Pandas สำหรับผู้ที่ไม่คุ้นเคยกับโมดูล

วิธีจัดรูปแบบข้อมูลที่พบบ่อยที่สุดวิธีหนึ่งคือเป็นไฟล์ CSV เป็นรูปแบบการจัดเก็บข้อมูลที่สะดวกเนื่องจากแอปพลิเคชันสเปรดชีตเช่น Excel และ Google ชีตสามารถแสดงข้อมูลในรูปแบบ CSV ในรูปแบบของตารางได้อย่างง่ายดาย ในบทความนี้ ฉันจะพูดถึงวิธีจัดรูปแบบข้อมูลเป็น CSV ใน Python โดยไม่ต้องใช้ Pandas มีเหตุผลหลักสองประการสำหรับสิ่งนี้:

  1. โปรแกรมเมอร์ Python ที่ไม่คุ้นเคยกับ Pandas อาจยังต้องทำงานกับ Pandas
  2. การทำความเข้าใจวิธีจัดรูปแบบไฟล์ CSV ด้วยตนเองจะให้ข้อมูลเชิงลึกที่สำคัญเกี่ยวกับวิธีการจัดรูปแบบข้อมูลของคุณด้านล่างพื้นผิว ความเข้าใจที่ลึกซึ้งยิ่งขึ้นนี้จะเป็นประโยชน์สำหรับโปรแกรมเมอร์ที่ต้องการจัดการและประมวลผลข้อมูลนี้

ฉันจะแบ่งส่วนที่เหลือของบทความออกเป็นสองส่วน: 1) โครงสร้างของไฟล์ CSV และ 2) การกำหนดโครงสร้างนี้ใน Python

ไฟล์ CSV มีหน้าตาเป็นอย่างไร

ก่อนที่จะพยายามสร้างไฟล์ CSV ของเราเองใน Python เราต้องเข้าใจว่าจริงๆ แล้ว CSV มีหน้าตาเป็นอย่างไร CSV ตัวย่อย่อมาจากค่าที่คั่นด้วยเครื่องหมายจุลภาค กล่าวอีกนัยหนึ่ง หากคุณคิดว่าตารางข้อมูลเป็นไฟล์ CSV คุณสามารถจินตนาการได้ว่ารายการในตารางถูกกำหนดด้วยเครื่องหมายจุลภาค

ลองมาดูตัวอย่างที่เป็นรูปธรรมกัน สมมติว่าฉันพิมพ์ข้อความต่อไปนี้โดยใช้แอพ Notepad ของ Windows Desktop (โดยทั่วไปใช้เพื่อสร้างไฟล์ข้อความพื้นฐาน):

name, age, color
Tom, 22, gold
Todd, 34, blue
Kelly, 21, green
Avril, 27, purple

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

ค่อนข้างเจ๋งใช่มั้ย? แต่ละค่าที่คั่นด้วยเครื่องหมายจุลภาคจะกำหนดคอลัมน์ใหม่ และแต่ละชุดของค่าที่คั่นด้วยบรรทัดใหม่จะกำหนดแถวใหม่ ตอนนี้คุณรู้วิธีเขียนไฟล์ CSV ของคุณเองตั้งแต่เริ่มต้นแล้ว! ต่อไป เรามาพิจารณาว่าเราจะทำเช่นนี้กับโค้ดได้อย่างไร

คุณจะสร้างไฟล์ CSV ใน Python ได้อย่างไร

Python มีวิธีจัดการกับไฟล์ CSV ในตัวสองสามวิธี (รวมถึง Pandas ที่กล่าวถึงข้างต้น เช่นเดียวกับโมดูล csv) อย่างไรก็ตาม นั่นเป็นหัวข้อสำหรับบทความอื่น วันนี้ ฉันอยากจะแสดงให้คุณเห็นถึงวิธีสร้างไฟล์ของคุณเองตั้งแต่เริ่มต้นโดยทางโปรแกรม มีเหตุผลสองประการสำหรับสิ่งนี้:

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

ทีนี้มาเข้าเรื่องกันเถอะ

เพื่อความสอดคล้องกัน เรามาสร้างตารางเดียวกันกับที่เราเห็นด้านบนกันดีกว่า ลองแยกปัญหาออกเป็นดังนี้:

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

มาทำทีละขั้นตอนกัน ขั้นแรก เรามากำหนดสตริงที่คั่นด้วยเครื่องหมายจุลภาคทั้งหมดของเรากัน เรายังจัดไว้ในรายการเพื่อให้เข้าถึงได้ง่าย

>>> header = 'name, age, color'
>>> row0 = 'Tom, 22, gold'
>>> row1 = 'Todd, 34, blue'
>>> row2 = 'Kelly, 21, green'
>>> row3 = 'Avril, 27, purple'
>>> data_list = [header, row0, row1, row2, row3]
>>> data_list
['name, age, color', 'Tom, 22, gold', 'Todd, 34, blue', 'Kelly, 21, green', 'Avril, 27, purple']

ตอนนี้เราเปิดไฟล์ใหม่ในโหมด "เขียน" (หมายความว่าเราสามารถเขียนลงไปได้) ไวยากรณ์สำหรับสิ่งนี้มีดังนี้ (โปรดทราบว่าหากคุณไม่ได้ระบุเส้นทาง เส้นทางนั้นจะถูกบันทึกลงในไดเร็กทอรีเดียวกันกับไฟล์ Python ของคุณ):

>>> my_file = open('data.csv', 'w')

ตอนนี้เราสามารถเขียนบรรทัดของเราลงในไฟล์ทีละบรรทัดโดยใช้โค้ดต่อไปนี้ อย่าลืมสังเกตว่าเราเขียนอักขระขึ้นบรรทัดใหม่ด้วยตนเองอย่างไรหลังจากแต่ละแถว:

>>> for row in data_list:
...     my_file.write(row)
...     my_file.write('\n')
...
16
1
13
1
14
1
16
1
17
1

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

>>> my_file.close()

แล้วก็เอาล่ะ! ตอนนี้ เราสามารถเปิดไฟล์นี้ใน Excel และดูการแสดงผลเหมือนเดิม:

ความคิดสุดท้าย

ณ จุดนี้ คุณควรมีความคิดที่ชัดเจนเกี่ยวกับวิธีการจัดรูปแบบไฟล์ CSV ภายใต้ประทุน และวิธีกำหนดด้วยตนเองใน Python การทำเช่นนี้มีประโยชน์สำหรับฉันในการจัดรูปแบบและประมวลผลข้อมูลของฉัน และฉันก็หวังว่าจะเป็นประโยชน์สำหรับคุณเช่นกัน

ไว้คราวหน้านะทุกคน!

อยากเก่ง Python ไหม? รับสิทธิ์เข้าถึงคำแนะนำที่เรียบง่ายและอ่านง่ายของฉันได้ฟรีที่นี่.

เนื้อหาเพิ่มเติมได้ที่ PlainEnglish.io ลงทะเบียนเพื่อรับ จดหมายข่าวรายสัปดาห์ฟรี ของเรา ติดตามเราบน Twitter และ LinkedIn เข้าร่วม ความไม่ลงรอยกันของชุมชน ของเรา