
สวัสดีครับ วันนี้ผมจะมาแนะนำวิธีการจัดการกับ Data แบบ Multiple Choice ซึ่งเวลาเราเก็บ Data มาแล้ว ส่วนใหญ่จะเป็นข้อมูล เช่น choice1,choice2,choice3 ข้อมูลจะถูกคั่นด้วยเครื่องหมาย , ผมยกตัวอย่างข้อมูลที่เรามีดังนี้ครับ

จากในรูป ข้อมูลแต่ล่ะแถวจะเป็นข้อมูลที่เลือกวิธีการเดินทางด้วยอะไรได้บ้าง ซึ่งบางคนอาจจะเลือก 2 วิธี เช่น Walking และ Cycling
ดังนั้นเราจะต้องแยกข้อมูลออกจากกันก่อนครับ โดยวิธีการหากเราใช้ pandas ให้ทำตามนี้ครับ
1 2 3 |
test = df['Travel'].str.split(',', expand=True) |
ข้อมูลจะถูกแตกออกมาเป็น 3 column แบบนี้ครับ

จากภาพด้านบนจะเห็นว่ามี 3 column เพราะค่าสูงสุดที่มีคนเลือกการเดินทาง คือ เลือกไว้ 3 วิธี (ในรูปจะไม่เห็นข้อมูลแถวที่เลือกมา 3 วิธี ให้ถือว่ามีคนเลือก 3 วิธีสูงสุดนะครับ) จากนั้นหากเราต้องการนับจำนวนว่าแต่ล่ะวิธีการเดินทางมีผู้เลือกไว้ทั้งหมดเท่าไหร่ก็ให้เรารวมเป็น column เดียวด้วยคำสั่ง stack()
1 2 3 4 5 |
test_stack = test.stack() test_stack.name = 'name' test_stack.index.names = ['id', 'travel'] |
จะได้เป็นข้อมูลแบบนี้ครับ

จากนั้นเราก็ใช้ value_counts() นับได้เลยครับ

ยังไม่จบครับ ถ้ากรณีที่พิจารณา 2 column ซึ่งทั้งสอง column เป็น multiple choice เหมือนกัน ให้เราทำขั้นตอนเหมือนเดิมจนถึงขั้นตอน stack ทั้ง 2 อัน โดยจะใช้ id เป็นตัวเชื่อม โดยนำมา join กัน ซึ่งตัวที่จะใช้คำสั่ง join ต้องแปลงเป็น dataframe ก่อนครับมีคำสั่งดังนี้
1 2 3 4 |
df_main = stack1.to_frame() df = df_main.join(stack2) |
จะได้ตารางดังนี้

จากนั้นเราก็ใช้ value_counts() นับได้เลยครับ จะได้เป็นจำนวนนับที่เกิดจากเงื่อนไขของ 2 column ครับ
2