[Colab] 3 วิธีโหลด CSV เข้า Colab

Metanon Jongkraijak (Ake)
3 min readAug 10, 2020

--

หลังจากหายไปนานกับวงการ Data Science เพราะไปเก็บเกี่ยวความรู้ด้านอื่นอยู่ (เดี๋ยวคงได้แชร์ในหัวข้อมูลอื่นๆถ้าไม่ขี้เกียจ) ได้ฤกษ์งามยามดีที่จะกลับมาฟื้นความรู้ด้านนี้อีกครั้ง พอดีลง Course เรียนกับทาง Botnoi ชื่อว่า “DSEssetial” พอมาทำงานกลุ่มรู้เลยว่าตัวเองลืมหลายๆเรื่องไปหมดแล้วโดยเฉพาะชุดคำสั่งในการจัดการข้อมูล ถึงแม้จะไม่ได้ทิ้งวงการ Python เพราะไปพัฒนาด้านเว็บด้วย Django แต่ชุดคำสั่งด้านวิเคราะห์ข้อมูลก็แทบไม่ใช้เลย

คำเตือน : ข้อมูลหลังจากนี้เป็นความเข้าใจที่ผู้เขียนสรุป และเข้าใจเองดังนั้นอาจมีผิดถูกบ้างโปรดอ่าน Reference ประกอบนะครับ

เริ่มแล้วนะ (สักทีเถอะ)

สาธยายกันมาซะนานเข้าเรื่องกันเลยแล้วกัน สำหรับวิธีที่ใช้ในการโหลด CSV เข้า Colab นั้นอาจจะมีหลายแบบ แต่ที่คัดมาเลยแล้วคิดว่าน่าสนใจจะมี 3 วิธีการดังนี้ครับ

อย่าลืม import pandas ไว้ใช้สร้าง Dataframe ด้วยนะครับ

1) โหลดจาก Github

วิธีการนี้อาจจะเหมาะสำหรับ Developer หรือ Programmer ที่มีการใช้บริการ Repository จาก Github อยู่แล้ว วิธีการก็แค่นำ datasets (CSV ไฟล์) ไปวางไว้ใน reopository จากนั้น browse ไปให้ถึงตัวไฟล์แล้วเลือก View raw

เมื่อเรา Browse ถึงไฟล์ที่เราต้องการแล้วให้เลือก View raw ในกรอบสีแดง

ตัว Browser จะเปิดหน้าใหม่เปรียบเสมือนเป็นการเปิดไฟล์เพื่อดูข้อมูล ดังภาพด้านล่างนี้

ให้เรา Copy link (url) ในกรอบสีแดงตามภาพด้านบนมาใช้งานครับ เปิด Colab ขึ้นมา Copy Code ด้านล่างนี้ และกำหนด url ให้ถูกต้องก็สามารถใช้งานได้เลยครับ

#url = 'link (url) ที่ copy ไว้'
url = 'https://raw.githubusercontent.com/imetanon/botnoi-dsessential/master/boston_listings.csv'
#ดึงข้อมูลมาใส่ไว้ใน Dataframe
df = pd.read_csv(url)

ไม่ยากใช่ไหมครับสำหรับวิธีแรก แต่มีข้อจำกัดที่ผมอ่านใน ref. อยู่อย่างนึงคือ ไฟล์ที่วางไว้บน Github จะเป็นไฟล์ที่ไม่เกิน 25 mb ดังนั้นถ้า datasets ใครมีขนาดใหญ่มากๆก็ต้องพิจารณาดูนะครับ

2) โหลดจาก Google Drive

บอกก่อนเลยว่าวิธีการจะโหลดข้อมูลจาก Google Drive มีหลากหลายมาก แต่ผมเจอวิธีนึงที่ค่อนข้างง่าย (เหมือนจะ official จากทาง Google Colab ด้วย) มาลุยกันเลย

เราจะใช้ Code ด้านล้างนี้ในการเชื่อมต่อกับ Google Drive ครับ Copy ไปรันใน Colab ได้เลยครับ

from google.colab import drive
drive.mount('/content/drive')

เมื่อรันโค้ดครั้งแรก ผลลัพท์ที่ได้จะเป็นดังภาพด้านล่างครับ ซึ่งเราจะต้องทำการ authen เพื่อเชื่อมต่อมกับ google drive โดยการคลิก link ในกรอบสีแดง

เมื่อคลิกแล้วมันจะพาเราไปสู่หน้าจอขอสิทธิ์ต่างๆ เลือก account ที่จะผูกให้ถูกต้อง (ในกรณีที่บางคนมีหลาย accounts ก็เท่ากับว่ามีหลาย drives นะครับ) หลังจากนั้นเราจะได้ authorization code แบบภาพด้านล่างนี้ครับ copy แล้วก็ไปใช้ใน Colab ที่เรารัน

หากทำการ authen สำเร็จ drive ก็จะ mouth เข้ากับ Colab ของเราเป็นที่เรียบร้อย เราสามารถตรวจสอบผลลัพธ์จาก Files Panel โดยคลิกรูป Folder ที่ซ้ายมือของจอ Colab ได้เลย

หาก Mouth สำเร็จจะปรากฎ Folder ชื่อ “Drive” ใน Files Pannel

ตอนนี้เราจะมี folder ชื่อ “drive” เพิ่มเข้ามา ซึ่งจะนำไปสู่สถานที่จัดเก็บไฟล์ Datasets ของเรานั่นเอง พร้อมที่จะโหลดข้อมูลเข้า Dataframe กันรึยังครับ ไปต่อกันเลย

ใช้ Code ด้านล่างนี้ และกำหนดค่า path ให้ถูกต้อง คำแนะนำในการหาค่า path ให้เรา browse ไปหาไฟล์ที่ต้องการจาก Files Panel เมื่อเจอไฟล์แล้วให้คลิกขวาที่ไฟล์ เลือก “Copy Path” เพียงเท่านี้เราก็จะได้ Path ที่ถูกต้องมาใช้งานครับ

# path = "Path ที่นำทางไปสู่ไฟล์ Dataset ที่ต้องการ"
path = "/content/drive/My Drive/ฺBotnoi/boston_listings.csv"
df = pd.read_csv(path)

เป็นไงครับวิธีที่สองอธิบายเยอะเลย (เพื่อให้เห็นภาพอะเนอะ) แต่ใช้จริงไม่ยากอย่างที่คิดนะครับ

3) โหลด (อัพโหลด) จากเครื่องเรา

วิธีทีนี้ก็มีรูปแบบที่หลากหลายอีกเช่นกัน ผมขอนำเสนอในรูปแบบการใช้ Code ด้านล่างนี้ สามารถ Copy และไปรันใน Colab ได้เลยครับ

from google.colab import files
uploaded = files.upload()

เมื่อรันคำสั่งข้างต้นแล้วจะเจอหน้าจอที่แจ้งให้เราเลือกไฟล์เพื่ออัพโหลดครับ เลือกไฟล์ที่ต้องการ ระบบก็จะทำการอัพโหลดไฟล์ของเรา เมื่ออัพโหลดเสร็จไฟล์ ก็จะไปอยู่ใน Files Panel

ขณะอัพโหลดจะมีข้อมูลแสดงว่าดำเนินการไปถึงไหนแล้ว
เมื่ออัพโหลดเรียบร้อยไฟล์ก็จะปรากฎอยู่ใน Files Panel

หาการอัพโหลดเรียบร้อยดี ก็ถึงเวลาโหลดข้อมูลเข้า Dataframe อีกเช่นเคยใช้ Code ด้านล่างนี้ได้เลยครับ

import io#df = pd.read_csv(io.BytesIO(uploaded['ชื่อไฟล์ที่เราอัพโหลด.csv']))
df = pd.read_csv(io.BytesIO(uploaded['boston_listings.csv']))

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

บทสรุป

เป็นไงกันบ้างครับ อ่านรู้เรื่อง และพอจะทำตามได้ไหม แต่ละวิธีก็มีข้อดีข้อเสียที่แตกต่างกันไป ขอเพียงเราเข้าใจ และใช้ให้ถูกสถานะการณ์

คิดว่าถ้าไม่หมดไฟซะก่อนคงได้นั่งเขียนบทความเรื่อยๆหลังจากนี้ อย่างน้อยเป็น Note ที่ตัวเองกลับมาอ่านได้ ถ้าชื่นชอบอย่าลืมกด Claps และ Share ให้ผมด้วยนะครับ

References:

--

--