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

การใช้เครื่องมือนำเสนอข้อมูล Python Visual บน Power BI Desktop

Apr 24, 2024

Power BI เป็นซอฟต์แวร์ของบริษัท Microsoft สำหรับใช้เป็นเครื่องมือในการจัดการและวิเคราะห์ข้อมูล โดยสามารถนำเสนอข้อมูล (Data Visualization) ได้ในรูปแบบของ Dashboard ในบทความนี้เราจะนำเสนอการใช้ซอฟต์แวร์ที่ชื่อ Power BI Desktop ซึ่งเป็นซอฟต์แวร์ในกลุ่มผลิตภัณฑ์ของ Power BI เป็นตัวอย่างในการอธิบายโดยใช้เครื่องมือนำเสนอข้อมูล (Visual Tool) ชื่อว่า Python Visual ซึ่งเป็น Visual ที่เกิดจากการสร้างชุดคำสั่ง (Script) ด้วยภาษาคอมพิวเตอร์ชื่อ Python รวมถึงการอธิบายสิ่งที่ผู้ใช้ควรรู้ก่อนการนำเครื่องมือตัวนี้ไปใช้ ในบทความฉบับนี้จะไม่ได้กล่าวถึงความรู้พื้นฐานในการสร้างชุดคำสั่งด้วยภาษา Python และการใช้งานเบื้องต้นของ Power BI Desktop ซึ่งผู้อ่านสามารถเรียนรู้เกี่ยวกับพื้นฐานเหล่านี้เพิ่มเติมได้ด้วยตนเอง ทั้งจากเอกสารอ้างอิงของบทความนี้และบทความอื่น ๆ ที่เกี่ยวข้อง

ก่อนที่เราจะไปอธิบายการใช้เครื่องมือตัวนี้ ผู้เขียนขออธิบายก่อนว่าการใช้ชุดคำสั่งภาษา Python ใน Power BI Desktop สามารถทำได้หลักๆ 2 วิธี คือ

  1. การนำเข้าข้อมูลและการจัดการข้อมูลด้วยการเรียกใช้ Python Script ซึ่งผู้เขียนจะไม่กล่าวถึงเนื้อหาส่วนนี้ในบทความ แต่ผู้อ่านสามารถศึกษาเพิ่มเติมได้ที่บทความชื่อ การเรียกใช้สคริปต์ Python ใน Power BI Desktop
  2. การใช้ Python Visual เพื่อนำเสนอข้อมูลด้วยคำสั่งภาษา Python โดยบทความนี้จะครอบคลุมพื้นฐานการใช้งานเครื่องมือตัวนี้ในเบื้องต้น ซึ่งถ้าผู้อ่านสนใจศึกษาเพิ่มเติม สามารถดูรายละเอียดได้ที่บทความชื่อ การสร้างวิชวลด้วย Python

โดยการใช้ชุดคำสั่งภาษา Python ทั้ง 2 วิธีนี้ ผู้ใช้งานจำเป็นต้องติดตั้ง Python และชุดคำสั่งสำเร็จรูป (Library) ที่เกี่ยวข้องบนเครื่องคอมพิวเตอร์ของตนเองก่อนที่จะนำชุดคำสั่งภาษา Python ไปใช้งานใน Power BI Desktop

ขั้นตอนการใช้งาน Python Visual

  1. เมื่อเข้าสู่หน้า Interface หรือหน้าหลักของซอฟต์แวร์ Power BI Desktop  ในส่วนของ Report View จะมีแถบเมนูชื่อ Visualizations อยู่ทางด้านขวา (ภาพที่ 1)
ภาพที่ 1 หน้า Report View ของ Power BI Desktop และแถบเมนู Visualizations (กรอบสีแดงเป็นส่วนขยายของตัวแถบเมนู)
  1. เลือกใช้ Python Visual โดยคลิกที่รูป  ในแถบเมนู Visualizations (ภาพที่ 2) แล้วหากมีหน้าต่างชื่อ Enable script visuals ปรากฏออกมา ให้เลือก Enable (ภาพที่ 3) เพื่อเข้าสู่หน้า Python script editor (ภาพที่ 4)
ภาพที่ 2 เครื่องมือ Python Visual
ภาพที่ 3 หน้าต่างชื่อ Enable script visuals สำหรับเปิดใช้งานส่วนสร้างชุดคำสั่งด้วยภาษา Python
ภาพที่ 4 หน้า Python script editor สำหรับให้ผู้ใช้นำเข้าฟิลด์ข้อมูลในช่อง Values และเพื่อสร้างชุดคำสั่งด้วยภาษา Python (กรอบสีแดงเป็นส่วนขยาย)
  1. ผู้ใช้สามารถลากชื่อฟิลด์ข้อมูล (Field) ของชุดข้อมูลที่ผู้ใช้ต้องการนำมาแสดงผลด้วยเครื่องมือ Python Visual ได้โดยตรง (โดยสามารถลากเข้ามาในส่วนช่อง Values ที่อยู่ในภาพที่ 4) ซึ่งสำหรับชุดข้อมูลที่บทความนี้ใช้เป็นตัวอย่างนั้น คือข้อมูลตัวอย่างที่ติดมากับซอฟต์แวร์ Power BI Desktop ในชื่อ financials ดังภาพที่ 5
ภาพที่ 5 ตัวอย่างตารางของชุดข้อมูลชื่อ financials ที่เป็นชุดข้อมูลตัวอย่างในซอฟต์แวร์ Power BI Desktop

  1. หลังจากลากฟิลด์ข้อมูลที่จะใช้เข้ามาในช่อง Values ผู้ใช้จะสามารถเขียนและแก้ไข Python script editor ที่อยู่ในส่วนล่างของภาพที่ 6 ได้ โดยตัว Python Visual จะสร้างชุดคำสั่งเรียกใช้ฟิลด์ข้อมูลให้อัตโนมัติจากฟิลด์ข้อมูลที่นำเข้ามาในช่อง Values โดยตัวอย่างของบทความนี้ เราได้ลากฟิลด์ชื่อ Profit (กำไร) Country (ประเทศ) และ Month Name (ชื่อเดือน) เข้ามา เพื่อใช้สร้างตัวอย่าง Visualization จากชุดคำสั่งภาษา Python
ภาพที่ 6 หน้าต่าง Python script editor สำหรับเขียนชุดคำสั่งในภาษา Python (กรอบสีแดงคือส่วนขยายของชุดคำสั่งสำหรับเรียกใช้ข้อมูล)
  1. หลังจากลากฟิลด์ข้อมูลที่จะใช้เข้ามาในช่อง Values ผู้ใช้สามารถเรียกใช้ฟิลด์ข้อมูลเหล่านี้ได้ในชุดคำสั่ง Python โดยใช้ Pandas Dataframe ในชื่อ dataset (ภาพที่ 6) ซึ่งผู้ใช้สามารถศึกษาการใช้งาน Pandas Dataframe ด้วยภาษา Python เพิ่มเติมได้จากคู่มือการใช้งาน Pandas
  2. ถึงขั้นตอนนี้ผู้ใช้สามารถสร้าง Visualization ประเภทต่างๆ ด้วยการสร้างชุดคำสั่ง Python บน Python script editor โดยสามารถเริ่มเขียนชุดคำสั่งได้ตั้งแต่บรรทัดที่ 7 ในภาพที่ 6 เป็นต้นไป โดยตัวอย่างที่ใช้ในบทความนี้ผู้เขียนได้สร้างชุดคำสั่ง (แสดงข้างล่างนี้) เพื่อแสดงกำไรเฉลี่ยในแต่ละเดือนและในแต่ละประเทศในรูปแบบของการแสดงผลด้วย Heatmap (ภาพที่ 7)
# Used Python packages
import pandas as pd
import matplotlib.pyplot as plt
import pip
pip.main(['install','seaborn']) # installing external package: seaborn
import seaborn as sns

# Custom order for Month Name
year_order = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
dataset['Month Name'] = pd.Categorical(dataset['Month Name'], categories=year_order, ordered=True) # Reorder Month Name

# Input data for crosstab
x = dataset["Country"]
y = dataset["Month Name"]
z = dataset["Profit"]

# Plot
plt.rcParams.update({'font.size': 20}) # Set fontsize
margins = pd.crosstab(x, y, values = z, aggfunc = 'mean') # Crosstab of Country & Month Name using the mean of Profit
plt.gca()
sns.heatmap(margins, cmap="Greens", cbar_kws={'label': 'Profit'}) # Heatmap
plt.text(1.4,1.9, r"$\bf{Max. Profit}$", color='white', rotation=90, size=15) # Custom text
plt.tight_layout()
plt.show()
ภาพที่ 7 Heatmapแสดงกำไรเฉลี่ยในแต่ละเดือนและแต่ละประเทศ ที่ถูกสร้างด้วยชุดคำสั่ง Python โดยเครื่องมือ Python Visual
  1. ขั้นตอนสุดท้าย ผู้ใช้สามารถปรับแต่งตัว Visualization ที่ถูกสร้างด้วยชุดคำสั่ง Python ของเครื่องมือ Python Visual ได้เหมือนเครื่องมือสร้าง Visualization อื่นๆของ Power BI Desktop เช่น การใส่ Filter และการสร้าง Interaction ระหว่าง Visualization เป็นต้น นอกจากนี้ข้อดีของเครื่องมือ Python Visual คือผู้ใช้สามารถปรับแต่งตัว Visualization ได้โดยการเพิ่มชุดคำสั่งใน Python script editor โดยตรง เช่น ในตัวอย่างของบทความนี้ ผู้เขียนได้เพิ่มข้อความ หรือ Text ด้วยคำว่า “Max. Profit” เพื่อแสดงจุดที่ชื่อเดือนและประเทศที่มีผลกำไรเฉลี่ยสูงสุดของข้อมูลชุดนี้บนภาพ Heatmap (ภาพที่ 7)

สิ่งที่ควรรู้ก่อนการใช้งานเครื่องมือ Python Visual

        ถึงในจุดนี้ผู้อ่านคงจะเห็นแล้วว่าเครื่องมือ Python Visual เป็นเครื่องมือในซอฟต์แวร์ Power BI Desktop ที่มีประสิทธิภาพสูงและสามารถใช้งานได้โดยง่ายๆด้วยการเขียนชุดคำสั่งด้วยภาษา Python อย่างไรก็ดีผู้เขียนอยากอธิบายให้ผู้อ่านเข้าใจว่าตัวเครื่องมือดี ๆ เช่นนี้ ก็ยังมีข้อจำกัดบางอย่างที่ควรรู้ก่อนการนำไปใช้งาน เพื่อประโยชน์สูงสุดของตัวผู้ใช้เอง ซึ่งข้อจำกัดทั้งหมด ผู้ใช้สามารถศึกษาเพิ่มเติมได้จากบทความชื่อ สร้างวิชวล Power BI ด้วย Python โดยในบทความนี้ผู้เขียนจะขอสรุปแค่ส่วนสำคัญจากข้อจำกัดทั้งหมดที่ผู้ใช้ควรรู้ก่อนการนำเครื่องมือตัวนี้ไปใช้ ดังต่อไปนี้

  1. เครื่องมือ Python Visual ตัวนี้จะแสดงผลข้อมูลได้กับแค่ 150,000 แถวแรกเท่านั้น
  2. เครื่องมือ Python Visual ตัวนี้จะไม่สามารถแสดงผลได้ ถ้าการคำนวณของชุดคำสั่งที่ใช้มีเวลาการทำงานมากกว่า 5นาที
  3. เครื่องมือ Python Visual จะไม่สามารถใช้งานได้ ถ้ามีการเปลี่ยนแปลงชื่อฟิลด์ข้อมูลที่นำมาใช้ในเครื่องมือนี้ (ชื่อฟิลด์ข้อมูลที่ถูกลากมาใส่ในช่อง Values ในภาพที่ 3)
  4. เครื่องมือ Python Visual ตัวนี้มีชุดคำสั่งสำเร็จรูปของภาษา Python หรือ Library เช่น pandas และ matplotlib ซึ่งได้รับการสนับสนุนและรองรับการใช้งานบน Power BI Desktop ในจำนวนจำกัด ผู้ใช้สามารถศึกษารายละเอียด Library อื่นๆที่ถูกรองรับการใช้งานบน Power BI Desktop ได้
  5. เครื่องมือ Python Visual มีการจำกัดสิทธิการใช้งาน (License) ของความสามารถในการแสดงผล Visualization โดยขึ้นอยู่กับประเภทของ Power BI License ที่ผู้ใช้มี เช่น Guest License จะไม่สามารถสร้างรายงานที่มีการนำเสนอโดยใช้เครื่องมือ Python Visual ได้ เป็นต้น
  6. ณ ปัจจุบันนี้ Power BI ยังไม่รองรับการใช้งานเครื่องมือ Python Visual และ R Visual (อีกเครื่องมือที่คล้ายๆกัน แต่เป็นเครี่องมือการแสดงผลด้วยชุดคำสั่งภาษา R) ในรายงานที่เผยแพร่ไปยังเว็บไซต์ (Publish to web)

ที่กล่าวมาทั้งหมด เป็นเพียงตัวอย่างส่วนหนึ่งของการใช้งานเครื่องมือ Python Visual บนซอฟต์แวร์ Power BI Desktop ผู้ใช้ยังสามารถสร้างการแสดงผลด้วยชุดคำสั่งอื่นๆในภาษา Python ด้วยเครื่องมือนี้ อย่างไรก็ดีผู้เขียนคิดว่าข้อควรรู้ก่อนการใช้งานเครื่องมือนี้ถือเป็นสิ่งที่สำคัญที่สุด เพราะหากผู้ใช้ไม่ศึกษาข้อจำกัดเหล่านี้ให้เข้าใจก่อนการใช้งาน ผู้ใช้มีความเสี่ยงที่จะพบปัญหาระหว่างการทำงานด้วยเครื่องมือ Python Visual ในภายหลังและอาจไม่สามารถแก้ไขปัญหานั้นได้โดยง่าย ซึ่งผู้เขียนหวังว่าบทความนี้จะเป็นประโยชน์ต่อ Data Scientist และ ผู้ใช้งาน Power BI Desktop ไม่มากก็น้อย

บทความโดย ปฏิภาณ แสงเดือน
ตรวจทานและปรับปรุงโดย ปริสุทธิ์ จิตต์ภักดี

เอกสารอ้างอิง

Patipan Saengduean

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

Parisut Jitpakdee, PhD

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