บทนำเกี่ยวกับฐานข้อมูล

การนำเข้าข้อมูลด้วย pandas อย่างมีประสิทธิภาพ

Amany Mahfouz

Instructor

Relational Database

  • ข้อมูลเกี่ยวกับ entity จะถูกจัดเก็บในตาราง
  • แต่ละแถวหรือ record คือหนึ่ง instance ของ entity
  • แต่ละคอลัมน์เก็บข้อมูลของ attribute หนึ่งๆ
  • ตารางเชื่อมโยงกันได้ผ่าน unique key
  • รองรับข้อมูลจำนวนมาก ผู้ใช้หลายคนพร้อมกัน และการควบคุมคุณภาพข้อมูล
  • กำหนดชนิดข้อมูลสำหรับแต่ละคอลัมน์
  • ใช้ SQL (Structured Query Language) เพื่อโต้ตอบกับฐานข้อมูล
การนำเข้าข้อมูลด้วย pandas อย่างมีประสิทธิภาพ

Relational Database ที่นิยมใช้

โลโก้ Microsoft SQL Server

โลโก้ Oracle

  • ฐานข้อมูล SQLite คือไฟล์ในคอมพิวเตอร์

โลโก้ PostgreSQL

โลโก้ SQLite

การนำเข้าข้อมูลด้วย pandas อย่างมีประสิทธิภาพ

การเชื่อมต่อกับฐานข้อมูล

  • ขั้นตอน 2 ขั้น:
    1. สร้างการเชื่อมต่อกับฐานข้อมูล
    2. คิวรีข้อมูลจากฐานข้อมูล

ภาพฐานข้อมูล

การนำเข้าข้อมูลด้วย pandas อย่างมีประสิทธิภาพ

การสร้าง Database Engine

โลโก้ SQLAlchemy

  • create_engine() ของ sqlalchemy สร้าง engine สำหรับจัดการการเชื่อมต่อฐานข้อมูล
    • ต้องระบุ URL ของฐานข้อมูลในรูปแบบ string
    • รูปแบบ URL สำหรับ SQLite: sqlite:///filename.db
การนำเข้าข้อมูลด้วย pandas อย่างมีประสิทธิภาพ

การคิวรีข้อมูลจากฐานข้อมูล

  • ใช้ pd.read_sql(query, engine) เพื่อโหลดข้อมูลจากฐานข้อมูล
  • อาร์กิวเมนต์
    • query: string ที่ระบุ SQL query หรือชื่อตารางที่ต้องการโหลด
    • engine: อ็อบเจกต์ connection/database engine
การนำเข้าข้อมูลด้วย pandas อย่างมีประสิทธิภาพ

SQL Review: SELECT

  • ใช้คิวรีข้อมูลจากฐานข้อมูล
  • รูปแบบพื้นฐาน:
    SELECT [column_names] FROM [table_name];
    
  • ดึงข้อมูลทั้งหมดในตาราง:
    SELECT * FROM [table_name];
    
  • รูปแบบโค้ด: keyword ใช้ตัวพิมพ์ใหญ่ ALL CAPS และลงท้ายคำสั่งด้วย semicolon (;)
การนำเข้าข้อมูลด้วย pandas อย่างมีประสิทธิภาพ

การดึงข้อมูลจากฐานข้อมูล

# Load pandas and sqlalchemy's create_engine
import pandas as pd
from sqlalchemy import create_engine

# Create database engine to manage connections engine = create_engine("sqlite:///data.db")
# Load entire weather table by table name weather = pd.read_sql("weather", engine)
การนำเข้าข้อมูลด้วย pandas อย่างมีประสิทธิภาพ
# Create database engine to manage connections
engine = create_engine("sqlite:///data.db")

# Load entire weather table with SQL weather = pd.read_sql("SELECT * FROM weather", engine)
print(weather.head())
       station                         name  latitude  ...   prcp  snow  tavg tmax  tmin
0  USW00094728  NY CITY CENTRAL PARK, NY US  40.77898  ...   0.00   0.0         52    42
1  USW00094728  NY CITY CENTRAL PARK, NY US  40.77898  ...   0.00   0.0         48    39
2  USW00094728  NY CITY CENTRAL PARK, NY US  40.77898  ...   0.00   0.0         48    42
3  USW00094728  NY CITY CENTRAL PARK, NY US  40.77898  ...   0.00   0.0         51    40
4  USW00094728  NY CITY CENTRAL PARK, NY US  40.77898  ...   0.75   0.0         61    50

[5 rows x 13 columns]
การนำเข้าข้อมูลด้วย pandas อย่างมีประสิทธิภาพ

มาฝึกกันเถอะ!

การนำเข้าข้อมูลด้วย pandas อย่างมีประสิทธิภาพ

Preparing Video For Download...