วิธีโหลดข้อมูล Google Sheet มาวิเคราะห์ใน Python บน Google Colab ใน 3 ขั้นตอน–ตัวอย่างจาก Harry Potter transaction dataset

Google Sheets เป็นเครื่องมือเก็บข้อมูลที่ทุกคนสามารถเข้าถึงได้ฟรี และมักเป็นที่เก็บข้อมูลทั้งส่วนตัว (เช่น รายรับรายจ่าย) และธุรกิจ (เช่น ข้อมูลการขาย ข้อมูลลูกค้า)

แม้ว่า Google Sheet จะวิเคราะห์ข้อมูลได้ แต่การวิเคราะห์จะมีประสิทธิภาพมากกว่า เมื่อเราใช้ programming language อย่าง Python เข้ามาช่วย

นอกจากความรวดเร็วในการประมวลผล และรองรับข้อมูลปริมาณมาก Python ยังสามารถวิเคราะห์แบบอัตโนมัติได้ด้วย เพียงแค่เราเขียน code รอเอาไว้

ในบทความนี้ เราจะมาดูวิธีการโหลดข้อมูลจาก Google Sheet เข้ามาวิเคราะห์ใน Python บน Google Colab กัน

บทความนี้แบ่งเป็น 3 ส่วน:

  1. Load spreadsheet
  2. Load worksheet
  3. Load data

สำหรับคนที่ต้องการทำตาม สามารถดูไฟล์ตัวอย่างได้ตาม link:

ถ้าพร้อมแล้ว ไปเริ่มกันเลย


  1. 1️⃣ Step 1. Load Spreadsheet
    1. ✅ 1.1 Authorise
    2. 📖 1.2 Open Spreadsheet
  2. 2️⃣ Step 2. Load Worksheet
    1. 📋 2.1 List
    2. 🫳 2.2 Select
  3. 3️⃣ Step 3. Load Data
    1. 👓 3.1 Read Data
    2. 🐼 3.2 Convert to DataFrame
    3. 📈 3.3 Analyse
  4. 💪 Summary
  5. 📃 References

1️⃣ Step 1. Load Spreadsheet

เริ่มแรก เราจะโหลด spreadsheet ที่ต้องการ ใน 2 ขั้นตอน:

  1. Authorise: ให้สิทธิ์การเข้าถึง Google Drive กับ Colab
  2. Open spreadsheet: เชื่อมต่อ Google Sheet ที่ต้องการ

.

✅ 1.1 Authorise

เราเปิดสิทธิ์การเข้าถึง Google Drive ให้กับ Colab ได้แบบนี้:

# Grant Colab access to Google services
# Import package
from google.colab import auth
# Enable access to Google services
auth.authenticate_user()

เมื่อกด “Run”, Google จะพาเราไปที่หน้า Sign In ให้เรากด “Continue”:

จากนั้น ติ๊ก checkbox เพื่อให้สิทธิ์กับ Colab แล้วกด “Continue”

หลังเปิดสิทธิ์ ให้เราสร้าง client เพื่อเข้าถึง Google Drive:

# Connect to Google Drive
# Import packages
import gspread
from google.auth import default
# Get credentials and Google Cloud project ID
creds, _ = default()
# Create Google Sheet client
gc = gspread.authorize(creds)

Note:

  • default() จะคืนค่าให้ 2 อย่าง คือ credentials และ Google Cloud project ID
  • เราจะใช้เฉพาะ credentials
  • ส่วน Google Cloud project ID เราจะปล่อยทิ้งไป โดยเก็บไว้ใน _

.

📖 1.2 Open Spreadsheet

หลังจากสร้าง client แล้ว เราจะเชื่อมต่อกับ spreadsheet ซึ่งเราจะต้องเอา ID ของ spreadsheet มาจาก URL ตามตัวอย่างในรูป:

ให้เรา copy ID มาใช้แบบนี้:

# Load spreadsheet
# Define spreadsheet ID
spreadsheet_id = "12MglU8pFc_7XAylqANyqm8aLQNwvL98fXObjHEjrRvQ"
# Open spreadsheet
spreadsheet = gc.open_by_key(spreadsheet_id)
# Print spreadsheet title
print(spreadsheet.title)

ผลลัพธ์:

Diagon Alley Artefacts

ตอนนี้ เราก็โหลด spreadsheet สำเร็จแล้ว

ตัวอย่าง spreadsheet:


2️⃣ Step 2. Load Worksheet

หลังจากโหลด Google Sheet แล้ว เราจะเชื่อมต่อกับ worksheet ที่ต้องการ ใน 2 ขั้นตอน:

  1. List: ดูรายชื่อ worksheet ทั้งหมดใน Google Sheet
  2. Select: เลือก worksheet

.

📋 2.1 List

เราดูรายชื่อ worksheet ทั้งหมดได้แบบนี้:

# List worksheets
# Get all worksheet names
worksheets = spreadsheet.worksheets()
# Print them
for ws in worksheets:
print(ws.title)

ผลลัพธ์:

transactions
Sheet2
Sheet3

.

🫳 2.2 Select

จากนั้น ให้เราโหลด worksheet ที่ต้องการ (เช่น transactions):

# Select worksheet
worksheet = spreadsheet.worksheet("transactions")

ตอนนี้ เราก็เชื่อมต่อกับ worksheet สำเร็จแล้ว


3️⃣ Step 3. Load Data

สุดท้าย เราจะโหลดข้อมูลจาก worksheet ใน 3 ขั้นตอน:

  1. Read data: โหลดข้อมูลจาก worksheet
  2. Convert to DataFrame: เปลี่ยนข้อมูลให้เป็น DataFrame
  3. Analyse: วิเคราะห์ข้อมูลตามต้องการ

.

👓 3.1 Read Data

เราจะโหลดข้อมูลจาก worksheet แบบนี้:

# Get all data from worksheet
data = worksheet.get_all_values()
# Print result
data

โดยข้อมูลที่ได้จะเป็น list of lists (1 list = 1 row):

.

🐼 3.2 Convert to DataFrame

เพื่อช่วยให้เราวิเคราะห์ข้อมูลได้ง่าย เราจะเปลี่ยนข้อมูลให้เป็น DataFrame ด้วย pandas:

# Convert data to df
# Import package
import pandas as pd
# Convert
df = pd.DataFrame(
data=data[1:],
columns=data[0]
)
# Print result
df

ผลลัพธ์:

.

📈 3.3 Analyse

จากนั้น เราสามารถวิเคราะห์ข้อมูลได้ตามต้องการ เช่น คำนวณยอดขายทั้งหมด:

# Find total sales per category
# Convert column types to numeric
df["quantity"] = pd.to_numeric(df["quantity"], errors="coerce")
df["unit_price"] = pd.to_numeric(df["unit_price"], errors="coerce")
# Calculate total sales per row
df["revenue"] = df["quantity"] * df["unit_price"]
# Calculate sum sales
total_sales = df["revenue"].sum()
# Print result
print(total_sales)

ผลลัพธ์:

11600.0

Note:


💪 Summary

ในบทความนี้ เราดูวิธีโหลดข้อมูล Google Sheet เข้ามาใน Python บน Google Colab ใน 3 ขั้นตอน:

Step 1. Load spreadsheet:

CodeFor
auth.authenticate_user()เปิดสิทธิ์เข้าถึง Google Drive
default()รับ credentials
gspread.authorize(creds)สร้าง client
gc.open_by_key(spreadsheet_id)เชื่อมต่อ Google Sheet

Step 2. Load worksheet:

CodeFor
spreadsheet.worksheets()ดูรายชื่อ worksheet ทั้งหมด
spreadsheet.worksheet("worksheet_name")เลือก worksheet

Step 3. Load data:

CodeFor
worksheet.get_all_values()โหลดข้อมูลใน worksheet
pd.DataFrame(data=data[1:], columns=data[0])แปลงข้อมูลให้เป็น DataFrame

📃 References

Comments

Leave a comment