BOTNOI Classroom — Pandas Numpy

Prisan Pimprasan
botnoi-classroom
Published in
3 min readNov 7, 2019

สวัสดีครับ วันนี้จะมาพูดถึงบทเรียนสำหรับ ผู้ที่สนใจศึกษา Data science แบบเบื้องต้นที่ทาง Botnoi ได้จัดสอนขึ้น ในบทเรียนนี้จะสอนการใช้เครื่องมือเบื้องต้นอย่าง Lib ชื่อว่า Pandas, Numpy ที่ใช้สำหรับจัดการข้อมูล Table หรือข้อมูลต่างๆ พร้อมกับสร้าง กราฟสรุป

Pandas คืออะไร ทำอะไรได้บ้าง?

pandas คือ lib ที่ใช้จัดการกับข้อมูลประเภทต่างๆ เช่น ข้อมูลที่มาจาก json , xlsx , csv , sql , html ฯลฯ มากมาย ในรูปแบบ Table และสามารถที่จะสรุปเป็นกราฟให้ดูได้

Numpy คืออะไรทำอะไรได้บ้าง ?

Numpy เป็น lib ที่ใช้ในการคำนวนสูตรทางคณิตศาสตร์ต่างๆ มากมาย มีมากมายหลาย function จนบอกไม่หมดเลย

ตัวอย่าง

ผมจะ ข้อมูลใน ไฟล์ excel ที่มีข้อมูล ส่วนสูง น้ำหนัก ของผู้หญิงและผู้ชาย นำมาทำเป็นกราฟ แสดงออกมาเป็นสี สีแดงเป็นผู้หญิง สีน้ำเงินเป็นผู้ชาย แบบง่ายๆก่อน

ลิงค์ข้อมูลที่ใช้ทดสอบ http://bit.ly/2Jn08XZ

ในตัวอย่างผมจะนำข้อมูล excel 1 ไฟล์เข้ามาก่อน

ในโค้ดที่ผมเขียนในตัวอย่าง ขั้นตอนแรก

  • dat = pd.read_excel(“Data.xlsx”) นำข้อมูล Data.xlsx เข้ามาในก่อน
  • bdat = dat[dat[‘gender’] == ‘b’] นำข้อมูลที่เป็นเพศชายเท่านั้นมาเก็บไว้ในตัวแปร bdat โดยใช้เงี่อนไง dat[‘gender’] == ‘b’ ในการค้นหา หรือถ้าเรียกง่ายๆคือ ค้นหา ตารางชื่อ gender ที่มีค่าเท่ากับ b ในข้อมูล dat มาเก็บไว้ใน bdat
  • gdat = dat[dat[‘gender’] == ‘g’] ค้นหาเพศหญิง อันนี้ก็เหมือนกันกับข้อมูลผู้ชาย
  • py.scatter(bdat[‘weight’] , bdat[‘height’] , c=’b’) นำข้อมูล น้ำหนักและส่วนสูง ของผู้ชาย มาสร้างกราฟ โดยกำหนดให้เป็นสี Blue หรือสีน้ำเงิน (c=’b’)
  • py.scatter(gdat[‘weight’] , gdat[‘height’] , c=’r’) นำข้อมูล น้ำหนักและส่วนสูง ของผู้หญิง มาสร้างกราฟ โดยกำหนดให้เป็นสี red หรือสีแดง (c=’r’)
  • py.show() แสดงกราฟที่สร้างขึ้นมา

lib ของ pandas ที่เกี่ยวกับการ นำข้อมูลเข้าออก จะมีประมาณนี้ (จริงๆมีเยอะมาก) แต่วันนี้ผมนำมาใช้บางตัวเพื่อตัวอย่างนะครับ

ตัวอย่างการนำข้อมูลมาค้นหาและคัดแยก

ถ้าดูจากข้อมูลที่ได้มา ทั้งหมดจะมีเยอะมากครับซึ่งเราไม่รู้ว่าเท่าไร

ถ้าเราใช้คำสั่ง data.count() ก็จะสามารถดูว่าในแต่ละหัวข้อ มีข้อมูลกี่ตัว

ทีนี้ สมมุติ หัวหน้ามีข้อมูล CSV เขาต้องการ ข้อมูลคนที่ Online เท่านั้นและ Export เป็นไฟล์ Excel เราจะทำยังไง ในขนาดข้อมูลที่เยอะมาก ถ้าใช้ วิธีการ Loop คงเสียเวลาเยอะเลย แต่ใน pandas สามารถทำได้ง่ายๆ โดยพิมพ์แค่นี้ครับ (ข้อมูลที่นำมา คือข้อมูลที่แจกฟรีจากอีกท่านมา)

ขั้นตอนแรกเราต้องหาหัวข้อมันก่อน ผมใช้ data[‘Sales Channel’] ในการดูหัวข้อมัน โดยระบุได้เลยในนี้ data[‘หัวข้อ’]

ในที่นี้เราสามารถดูข้อมูลแล้วว่า ใน Sales Channel มีอะไรบ้าง แต่เราต้องการแค่ Online งั้นเราต้องการจัดแยกข้อมูลก่อน โดยตรวจสอบโดยใช้คำสั่งนี้ data[‘Sales Channel’] == ‘Online’

สังเกตว่า มันจะเป็น False กับ True มันก็คือ ถ้าเป็น True คือใช่ ถ้าเป็น False คือไม่ใช่ แค่นั้นเอง

จากนั้นผมก็ทำการ แยกออกมาแล้วเก็บไว้ในตัวแปร online ครับจะได้ประมาณนี้ online = data[data[‘Sales Channel’] == ‘Online’] ถ้าลอง Print ออกมาดู ก็จะได้ข้อมูล คนที่ Online ที่เราต้องการมา

จากนั้นพอได้ ข้อมูลมา เราก็ทำการ Export ออกเป็นไฟล์ Excel ก็เสร็จ โดยใช้คำสั่ง online.to_excel(‘online.xlsx’) ก็จะได้ไฟล์ Excel ออกมาครับ โค้ดก็จะมีแค่ 4 บรรทัด ครับ

ตัวอย่างการใช้ Numpy มาค้นหาค่าใกล้เคียง

สมมุติว่า ผมมีข้อมูลส่วนสูงและน้ำหนัก ผู้ชายและผู้หญิง ผมต้องการค้นหาว่า ผมป้อนข้อมูลส่วนสูงและน้ำหนักเข้าไปให้มันค้นหาว่า ผมเป็น ผู้หญิงหรือผู้ชาย แสดงออกมา 3 ค่าที่ใกล้เคียงมากที่สุด

ผมกำหนดค่า ส่วนสูง และ น้ำหนักก่อน

ผมก็นำข้อมูลเข้ามาแล้ว ก็ทำการคำนวน ส่วนสูงตามสูตรคณิตศาสตร์

นำค่าที่ได้ออกมา ใช้ Numpy การคำนวนต่อโดยใช้ชื่อ function ว่า sqrt() จากนั้นเราจะได้ค่าที่คำนวนจาก sqrt ออกมาคือ ค่าใกล้เคียง

จากนั้นเราก็นำค่าที่ได้มา ไปเก็บไว้ที่ตำแหน่งเดิมแต่เพิ่มหัวข้อชื่อ distence ขึ้นมา

สังเกตว่า ตอนนี้ ในแต่ละค่า จะมีค่า distence ที่คำนวนค่าใกล้เคียงที่เราป้อนออกมา หลังจากนั้นเราก็ทำการ sort หาค่าที่น้อยไปมากสุด โดยผมจะ sort จาก distence ก่อน

ที่นี้พอเราได้ข้อมูลที่ได้จากการ sort มาแล้ว แต่สังเกตว่ามันขึ้นมาทั้งหมด ที่นี้เราต้องการแค่ 3 ค่าที่ใกล้เคียงเท่านั้นให้ใช้คำสั่ง iloc[0:3] ตัวนี้คือ การระบุค่าที่ต้องการแสดงว่า เริ่มที่เท่าไรจบที่เท่าไร iloc[start:stop]

มันจะแสดงค่าที่ใกล้เคียงมากสุดแค่ 3 ค่าที่เราระบุไว้ครับ

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

หากใครสนใจอยากจะเรียนรู้เพิ่มเติม ทาง Botnoi เปิดคลาสสอน AI สอน Data science สามารถ join group Botnoi Classroom และสอบถามเรื่องการเรียน

ส่วนหากใครสนใจใช้บริการ Botnoi ในสร้างแชทบอท หรือให้คำปรึกษาเกี่ยวกับ AI & data science ติดต่อได้ผ่านเวป -> Botnoi และ FB Page Botnoi Consulting นะครับ

--

--