โซลูชันที่ปราศจาก Pandas สำหรับผู้ที่ไม่คุ้นเคยกับโมดูล
วิธีจัดรูปแบบข้อมูลที่พบบ่อยที่สุดวิธีหนึ่งคือเป็นไฟล์ CSV เป็นรูปแบบการจัดเก็บข้อมูลที่สะดวกเนื่องจากแอปพลิเคชันสเปรดชีตเช่น Excel และ Google ชีตสามารถแสดงข้อมูลในรูปแบบ CSV ในรูปแบบของตารางได้อย่างง่ายดาย ในบทความนี้ ฉันจะพูดถึงวิธีจัดรูปแบบข้อมูลเป็น CSV ใน Python โดยไม่ต้องใช้ Pandas มีเหตุผลหลักสองประการสำหรับสิ่งนี้:
- โปรแกรมเมอร์ Python ที่ไม่คุ้นเคยกับ Pandas อาจยังต้องทำงานกับ Pandas
- การทำความเข้าใจวิธีจัดรูปแบบไฟล์ 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
) อย่างไรก็ตาม นั่นเป็นหัวข้อสำหรับบทความอื่น วันนี้ ฉันอยากจะแสดงให้คุณเห็นถึงวิธีสร้างไฟล์ของคุณเองตั้งแต่เริ่มต้นโดยทางโปรแกรม มีเหตุผลสองประการสำหรับสิ่งนี้:
- การใช้ Pandas เพื่อกำหนด CSV ของคุณจำเป็นต้องมีความเข้าใจในการประมวลผลข้อมูลและการจัดการโดยใช้โครงสร้างข้อมูลของ Pandas และฉันต้องการให้ผู้อ่านที่ต้องการทำงานกับไฟล์ CSV แต่อาจไม่รู้จัก Pandas สามารถเข้าถึงบทความนี้ได้
- โมดูลอื่นๆ (เช่น 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 เข้าร่วม ความไม่ลงรอยกันของชุมชน ของเรา