สถาบันข้อมูลขนาดใหญ่ (องค์การมหาชน)

Bamboolib: หนึ่งใน Python Library ที่มีประโยชน์เป็นอย่างมากสำหรับนักวิเคราะห์ข้อมูลมือใหม่

Sep 20, 2023

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

Bamboolib สำหรับผู้เริ่มต้นและผู้เชี่ยวชาญ

Bamboolib โฆษณาตนเองว่าสามารถทำให้ผู้ใดก็สามารถทำการวิเคราะห์ข้อมูลใน Python ได้ โดยที่ไม่จำเป็นต้องเป็นโปรแกรมเมอร์หรือต้องค้นหา syntax บน Google จากการทดสอบเราพบว่ามันสามารถทำได้จริง! ไม่ต้องอาศัยทักษะการเขียนโค้ดเลย ซึ่งค่อนข้างเป็นประโยชน์สำหรับผู้ที่ต้องการประหยัดเวลาหรือผู้ที่ไม่ต้องการพิมพ์โค้ดยาว ๆ ในการจัดการงานง่าย ๆ อีกทั้งผู้เรียน Python ยังสามารถใช้ Bamboolib เพื่อเรียนรู้ได้ด้วย เช่น หากคุณต้องการเรียนรู้วิธีการทำบางสิ่งใน Python คุณสามารถเรียนรู้จากโค้ดที่ Bamboolib สร้างขึ้นมาได้ อย่างไรก็ตาม เรามาสำรวจวิธีการใช้งานกันและคุณสามารถตัดสินใจได้ว่ามันจะเป็นประโยชน์ต่อคุณจริงหรือไม่ มาเริ่มต้นเลย!

การติดตั้ง

การติดตั้ง Bamboolib นั้นง่ายมาก คุณสามารถพิมพ์คำสั่ง pip install bamboolib ในหน้า Terminal ของคุณได้เลย หลังจากนั้น คุณสามารถนำเข้าไปยัง Jupyter Notebook ด้วยการพิมพ์ import bamboolib as bam เพื่อเริ่มต้นใช้งาน เราจะใช้ชุดข้อมูลยอดขายวิดีโอเกมส์จาก Kaggle All Video Games Sales เป็นตัวอย่างในบทความนี้ ทั้งนี้คุณสามารถที่จะใช้ข้อมูลอะไรก็ได้ตามที่คุณชอบ หลังจากดาวน์โหลดชุดข้อมูลของคุณแล้ว เรามานำเข้ามันและนั่นคือเราสามารถเริ่มใช้ Bamboolib ได้แล้ว.

ขั้นตอนแรก

จากที่ได้กล่าวไปก่อนหน้านี้ว่า Bamboolib ไม่ต้องอาศัยทักษะการ code ใด ๆ ในการนำข้อมูลเข้าบน Jupyter Notebook จึงทำด้วยการพิมพ์คำว่า bam เมื่อเราพิมพ์คำนี้ไป แล้วกดรัน จะมีการแสดง UI ซึ่งเราสามารถนำเข้าชุดข้อมูลที่เตรียมมาได้ด้วยการคลิกเพียงสามครั้ง โดยการคลิกเลือกปุ่ม “Read CSV file” จะนำไปยังที่ตั้งไฟล์ของคุณ จากนั้นเมื่อคุณเลือกไฟล์ที่ต้องการแล้ว กดปุ่ม “Open CSV file” ข้อมูลของคุณจะปรากฏ

จุดสังเกตในตอนท้าย หลักจากการทำขั้นตอนต่าง ๆ ที่เราทำผ่าน UI ขั้นตอนเหล่านั้นจะถูกเขียนออกมาเป็น Python ซึ่ง Bamboolib จะนำเข้า Pandas Library และสร้างโค้ดให้เราทันที

ส่วนของการเตรียมข้อมูล (Data Preparation)

1. การเปลี่ยนข้อมูลในรูปแบบข้อความ (String) ให้อยู่ในรูปแบบวันที่ (Datetime)

จากข้อมูลที่โหลดมานั้น จะสังเกตเห็นได้ว่า คอลัมน์ข้อมูลวันที่นั้นมีลักษณะเป็นข้อความ เมื่อเรากดเลือกประเภทข้อมูลที่คอลัมน์วันที่ซึ่งเป็นตัวอักษรขนาดเล็กที่ข้าง ๆ ชื่อคอลัมน์ เราจะสามารถเปลี่ยนลักษณะของข้อมูลได้ รวมถึงสามารถเลือกรูปแบบที่เราต้องการและยังสามารถสร้างเป็นคอลัมน์ใหม่ ตั้งชื่อใหม่ได้อีกด้วย ในกรณีที่ไม่อยากให้ซ้ำกับคอลัมน์เดิม เมื่อเรากดเลือกทุกอย่างเสร็จ กดปุ่ม “execute” เพื่อรันขั้นตอนต่าง ๆ ออกมาเป็นโค้ด

คุณสังเกตเห็นหรือไม่ว่ามีโค้ดเพิ่มขึ้นมาในช่อง ซึ่งโค้ดเหล่านี้คือขั้นตอนต่าง ๆ ที่คุณทำการเปลี่ยนข้อมูลในรูปแบบข้อความให้อยู่ในรูปแบบวันที่นั่นเอง

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

จากที่ก่อนหน้านี้เคยกล่าวถึง ตัวอักษรเล็ก ๆ ที่อยู่ข้างชื่อคอลัมน์นั้นคือลักษณะข้อมูลของคอลัมน์นั้น ๆ ถ้าคุณสังเกตลักษณะข้อมูลของคอลัมน์ user_review คุณจะเห็นว่าลักษณะข้อมูลแสดงเป็น f ซึ่งในที่นี้ f หมายถึง ข้อมูลชนิดตัวเลขทศนิยม (Float) แทนที่จะเป็น i ที่เป็นจำนวนเต็ม (Integer) แม้ว่าเราจะได้ทำการเปลี่ยนลักษณะของข้อมูลจาก object มาเป็นจำนวนเต็มแล้วก็ตาม นั่นเพราะว่า Bamboolib เข้าใจว่าลักษณะของข้อมูลเป็นข้อมูลชนิดตัวเลขทศนิยม ดังนั้นเพื่อไม่ให้เกิดข้อผิดพลาด มันจึงแก้ไขอัตโนมัติให้คุณนั่นเอง

2. สร้างคอลัมน์ใหม่ด้วยประเภทข้อมูลและชื่อที่แตกต่าง

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

ในรูปภาพด้านล่างนี้ ได้ทำการเลือกคอลัมน์ meta_score จากนั้นเปลี่ยนประเภทข้อมูลจาก integer เป็น float แล้วตั้งชื่อคอลัมน์ใหม่ชื่อว่า score

3. ลบคอลัมน์

ถ้าหากคุณต้องการที่จะลบคอลัมน์ที่ไม่จำเป็นออก ให้ค้นหาคำว่า “drop” ในกล่อง Search transformations จากนั้นเลือก “Select or drop columns” จากนั้นเลือก “drop” และเลือกคอลัมน์ที่คุณต้องการลบ แล้วคลิกที่ “execute” คอลัมน์ที่ไม่ต้องการจะถูกลบทิ้งทันที

4. การเปลี่ยนชื่อคอลัมน์

เมื่อคุณต้องการเปลี่ยนชื่อคอลัมน์ วิธีง่าย ๆ ที่สามารถทำได้เลยคือ ให้ค้นหาคำว่า “rename” ในกล่อง Search transformations เหมือนเดิม จากนั้นเลือกคอลัมน์ที่คุณต้องการเปลี่ยนชื่อ เขียนชื่อคอลัมน์ใหม่ แล้วคลิกที่ “execute” คอลัมน์ที่ต้องการจะเปลี่ยนชื่อ ซึ่งวิธีการนี้คุณสามารถเปลี่ยนชื่อหลายคอลัมน์ได้พร้อมกันตามที่คุณต้องการ

5. การแยกข้อมูลประเภท String (Splitting a string)

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

เริ่มต้นด้วยการพิมพ์ “split” ในกล่อง Search transformation เลือก “spilt text to column” จากนั้นเลือกคอลัมน์ที่คุณต้องการแยก โดยสามารถระบุตัวคั่น และจำนวนคอลัมน์สูงสุดที่คุณต้องการได้เลย

เนื่องจากนี่เป็นเพียงการสาธิตเท่านั้น เรามาลองลบคอลัมน์เพิ่มเติมกันดีกว่า ให้คุณค้นหาคำว่า “drop” จากนั้นเลือกคอลัมน์ที่คุณต้องการลบ ถ้าหากมีมากกว่า 1 คอลัมน์ที่อยากลบ เราสามารถเลือกคอลัมน์ที่ต้องการลบพร้อมกัน แล้วคลิกที่ “execute” ได้เลย

6. การเลือกคอลัมน์ในข้อมูล

เราสามารถเลือกให้แสดงผลเฉพาะบางคอลัมน์ได้ เช่น ต้องการให้ในข้อมูลมีแค่ชื่อเกม เครื่องเล่น เเละคะแนน ที่เป็นประโยชน์ในการนำไปใช้งานต่อ สิ่งที่ต้องทำคือ ให้พิมพ์ “select” ในกล่อง “Search transformation” จากนั้น เลือกคอลัมน์ชื่อเกม เครื่องเล่น เเละคะแนน เมื่อเลือกคอลัมน์ที่คุณต้องการเสร็จแล้ว ให้คลิกที่ “execute” ข้อมูลจะแสดงเพียงแค่คอลัมน์ที่เราเลือกนั่นเอง

บทสรุป ในส่วนของการเตรียมข้อมูลนั้น Bamboolib สามารถช่วยให้การจัดการเตรียมข้อมูลง่ายดายขึ้น อีกทั้งยังสามารถช่วยเขียนโค้ดได้ด้วย ต่อไปนี้ใครที่ไม่สามารถเขียนโค้ดได้ ก็สามารถจัดการข้อมูลได้

ส่วนของการจัดการข้อมูล เพื่อให้สามารถนำไปใช้ประโยชน์ต่อได้ (Data Transformation)

1. การกรองข้อมูล (Filtering data)

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

2. การรวมข้อมูล (Merging data)

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

3. การแตกข้อมูลวันที่ (Extract datetime attributes)

หากคุณต้องการแตกข้อมูลออกจากคอลัมน์วันที่ เช่น วันของสัปดาห์และเดือน คุณไม่จำเป็นต้องค้นหาโค้ดหรือค้นหาบน Google อีกต่อไป คุณสามารถจัดการด้วย Bamboolib โดยสามารถใช้คำสั่ง “extract datetime property” และเลือกคอลัมน์วันที่ แล้วเลือกรูปแบบข้อมูลที่คุณต้องการแยกออกมาได้อย่างง่ายดาย

4. การจัดและแบ่งกลุ่มข้อมูล (Grouping By)

ปกติแล้วการใช้งาน group by ในการจัดและแบ่งกลุ่มข้อมูลนั้นเป็นสิ่งที่คุณสามารถทำได้ด้วย Pandas แต่มันอาจเป็นสิ่งที่ซับซ้อนได้ในบางครั้ง Bamboolib สามารถช่วยจัดและแบ่งกลุ่มข้อมูลได้เหมือนกัน ด้วยไลบรารี่นี้จะทำให้การทำ group by ง่ายมากขึ้น โดยการค้นหา “group by” ในกล่อง “Search transformation”  จากนั้นเลือกคอลัมน์ที่คุณต้องการจัดกลุ่ม แล้วเลือกการคำนวณตามที่คุณต้องการดู จะได้ผลลัพธ์จากการจัดกลุ่มออกมา

ในตัวอย่างนี้ เราต้องการดูจำนวนและคะแนนเฉลี่ยของเกมสำหรับแต่ละแพลตฟอร์ม จากข้อมูลจะเห็นเลยว่า PlayStation 4 มีค่าเฉลี่ยคะแนนต่ำที่สุดในทุก ๆ แพลตฟอร์ม

ส่วนการแสดงผลข้อมูล (Data Visualization)

Bamboolib เป็นเครื่องมือที่ยอดเยี่ยมสำหรับสร้างการแสดงผลข้อมูลอย่างรวดเร็ว ตัวอย่างเช่น หากต้องการสร้าง histograms ให้คลิกที่ “create plot” จากนั้นเลือกประเภทของภาพ และ เลือกแกน x ว่าต้องการให้ แสดงผลเป็นข้อมูลอะไร คุณเพิ่งสร้างแผนภูมิที่สวยงามด้วยการคลิกเพียงแค่สี่ครั้งเท่านั้น

หรือหากต้องการสร้างกราฟ box plot กระบวนการเหมือนกันเลย เพียงเปลี่ยนการเลือกจากกราฟประเภท histogram เป็นกราฟ box plot

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

การสำรวจข้อมูลเบื้องต้น (Data Exploration)

Bamboolib ทำให้การสำรวจข้อมูลเป็นเรื่องที่ง่ายมาก คุณจะได้รับข้อมูลเชิงลึกจากชุดข้อมูลของคุณด้วยการคลิกเพียงครั้งเดียวเท่านั้น โดยการคลิกที่ “Explore DataFrame” ผลการสำรวจข้อมูลจะปรากฏ เช่น ค่าเฉลี่ยทางสถิติ มัธยฐาน ควอลไทล์ ส่วนเบี่ยงเบนมาตรฐาน จำนวนข้อมูลทั้งหมด จำนวนข้อมูลที่ขาดหายไป ค่าที่ได้จากการสังเกตที่เป็นบวกและลบ และอื่น ๆ อีกมากมาย นอกจากนี้ยังสามารถสร้างแผนภูมิเพื่อให้คุณเข้าใจการกระจายของข้อมูลได้อีกด้วย

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

บทสรุปทิ้งท้าย

จากตัวอย่างการใช้งานข้างต้น จะเห็นได้ว่า Bamboolib นั้นเป็น Library ที่มีศักยภาพมากในการเปลี่ยนแปลงวิธีการวิเคราะห์ข้อมูลและวิธีการเรียนรู้ ทำให้ผู้ใดก็สามารถทำการวิเคราะห์ข้อมูลใน Python ได้ โดยที่ไม่จำเป็นต้องเป็นโปรแกรมเมอร์ ผู้ใช้งานสามารถใช้ประโยชน์ของ Bamboolib ในด้านต่าง ๆ ได้หลากหลาย ไม่ว่าจะเป็น การเตรียมข้อมูล (Data Preparation)  การจัดการข้อมูล เพื่อให้สามารถนำไปใช้ประโยชน์ได้ (Data Transformation) การแสดงผลข้อมูล (Data Visualization) และ การสำรวจข้อมูลเบื้องต้น (Data Exploration) เป็นต้น หวังว่าบทความนี้จะเป็นประโยชน์กับผู้อ่านที่อยากเริ่มต้นวิเคราะห์ข้อมูลกันนะคะ

อ้างอิง

Bamboolib: One of the Most Useful Python Libraries You Have Ever Seen | by Ismael Araujo | Towards Data Science

Napatsorn Pitakkotchakorn

Data Scientist Government Big Data Institute (GBDi)

Isarapong Eksinchol, PhD

Editor and Data Scientist at Big Data Institute (Public Organization), BDI

Isarapong Eksinchol, PhD

Editor and Data Scientist at Big Data Institute (Public Organization), BDI