Skip to content

📘 Buổi 7: Python Basics — Bước đầu lập trình cho Data Analyst

Bạn không cần trở thành developer — chỉ cần đủ Python để biến dữ liệu thành insight nhanh hơn bất kỳ spreadsheet nào.

🎯 Mục tiêu buổi học

Sau buổi này, học viên sẽ:

  1. Hiểu data types cơ bản: int, float, string, list, dict, tuple
  2. Viết function đơn giản để xử lý dữ liệu
  3. Đọc/ghi file CSV, JSON, Excel bằng Python
  4. Sử dụng control flow: if/else, for loop, while loop

📋 Tổng quan

Ở Buổi 5–6, bạn đã thành thạo SQL — từ SELECT, JOIN, GROUP BY đến Window Functions, CTE và tư duy Data Warehouse. SQL giúp bạn truy vấn dữ liệu từ database cực kỳ hiệu quả. Nhưng thực tế công việc DA đòi hỏi nhiều hơn: bạn cần làm sạch dữ liệu lộn xộn (missing values, sai format), tự động hóa các bước lặp đi lặp lại, xây dựng pipeline xử lý dữ liệu từ nhiều nguồn, và tạo visualization tùy biến mà Excel/Tableau không hỗ trợ. Đó là lúc Python trở thành công cụ không thể thiếu.

Python là ngôn ngữ lập trình phổ biến nhất trong lĩnh vực Data — theo Stack Overflow Survey 2025, Python đứng #1 trong Data Science & Analytics, với hệ sinh thái thư viện khổng lồ: Pandas (xử lý dữ liệu), Matplotlib/Seaborn (visualization), Scikit-learn (machine learning). Nhưng đừng lo — bạn sẽ không học tất cả hôm nay. Buổi 7 tập trung vào nền tảng Python — những khái niệm cốt lõi mà mọi dòng code Pandas, mọi script tự động hóa đều xây dựng trên đó.

Nhớ lại hành trình: Buổi 3–4 bạn dùng Excel (click chuột), Buổi 5–6 bạn viết SQL (query database). Giờ đến Python — bạn sẽ viết code để xử lý dữ liệu. Mỗi bước tiến giúp bạn xử lý dữ liệu lớn hơn, nhanh hơn, tự động hơn. Excel giới hạn ~1 triệu dòng, SQL phụ thuộc vào database — Python có thể đọc file từ bất kỳ đâu, xử lý bất kỳ format nào, và chạy tự động mỗi ngày mà không cần mở app.

💡 Nguyên tắc 80/20

Bạn chỉ cần ~20% kiến thức Python để giải quyết ~80% công việc DA. Buổi này dạy đúng 20% đó — data types, control flow, functions, file handling. Đây là nền tảng để bạn học Pandas (Buổi 8–9) và Data Visualization (Buổi 10–11) ngay sau.

Công cụ sử dụng: Jupyter Notebook hoặc Google Colab — môi trường viết code tương tác, chạy từng block, thấy kết quả ngay.


📌 Phần 1: Python Data Types — Các kiểu dữ liệu nền tảng

Khái niệm

Data type (kiểu dữ liệu) xác định loại giá trị mà một biến có thể chứa. Hiểu data type là bước đầu tiên — giống như bạn cần phân biệt cột Number, Text, Date trong Excel trước khi tính toán.

Bốn kiểu dữ liệu cơ bản:

KiểuMô tảVí dụ DATương đương Excel
intSố nguyênSố đơn hàng: 150, tuổi: 28Number (0 decimals)
floatSố thập phânDoanh thu: 1500000.50, rating: 4.5Number (2 decimals)
strChuỗi ký tựTên KH: "Nguyễn Văn An", thành phố: "Hà Nội"Text
boolĐúng/SaiĐã thanh toán: True, VIP: FalseTRUE/FALSE
python
# Khai báo biến — không cần khai báo kiểu, Python tự nhận
so_don_hang = 150          # int
doanh_thu = 1500000.50     # float
ten_khach = "Nguyễn Văn An" # str
da_thanh_toan = True       # bool

# Kiểm tra kiểu dữ liệu
print(type(doanh_thu))     # <class 'float'>
print(type(ten_khach))     # <class 'str'>

Collection types — Lưu trữ nhiều giá trị

Trong DA, bạn hiếm khi làm việc với 1 giá trị đơn lẻ — bạn xử lý tập hợp dữ liệu. Python cung cấp 4 kiểu collection:

KiểuĐặc điểmVí dụ DATương đương SQL/Excel
listCó thứ tự, thay đổi đượcDanh sách doanh thu theo ngàyCột trong Excel
tupleCó thứ tự, không thay đổiTọa độ GPS cửa hàng
dictCặp key-valueThông tin 1 khách hàng1 row trong bảng
setKhông trùng lặp, không thứ tựDanh sách thành phố uniqueSELECT DISTINCT
python
# List — giống 1 cột Excel, lưu nhiều giá trị
daily_sales = [150, 200, 175, 300, 250, 180, 220]
products = ["Laptop", "Mouse", "Keyboard", "Monitor"]

# Truy cập phần tử — index bắt đầu từ 0!
print(daily_sales[0])   # 150 — ngày đầu tiên
print(daily_sales[-1])  # 220 — ngày cuối cùng
print(products[1:3])    # ['Mouse', 'Keyboard'] — slicing

# Dict — giống 1 row trong database
customer = {
    "id": "KH001",
    "name": "Trần Thị Bình",
    "city": "Hồ Chí Minh",
    "total_spent": 5200000
}
print(customer["name"])          # Trần Thị Bình
print(customer.get("email", "N/A"))  # N/A — key không tồn tại, trả default

⚠️ Lỗi phổ biến

List index bắt đầu từ 0, không phải 1 như Excel row numbers! daily_sales[1] là phần tử thứ 2, không phải thứ nhất.

String methods cho Data Analyst

Khi làm sạch dữ liệu, bạn sẽ xử lý chuỗi rất nhiều — tên khách hàng viết hoa/thường lẫn lộn, khoảng trắng thừa, format không nhất quán. Python cung cấp các string methods mạnh mẽ:

python
# Dữ liệu "bẩn" thực tế
raw_name = "  nguyễn VĂN an  "

# Làm sạch
clean_name = raw_name.strip().title()     # "Nguyễn Văn An"

# Tách chuỗi — giống Text to Columns trong Excel
address = "123 Lê Lợi, Quận 1, Hồ Chí Minh"
parts = address.split(", ")
print(parts)      # ['123 Lê Lợi', 'Quận 1', 'Hồ Chí Minh']
print(parts[-1])  # 'Hồ Chí Minh' — lấy thành phố

# Thay thế — giống SUBSTITUTE trong Excel
phone = "0912-345-678"
phone_clean = phone.replace("-", "")  # "0912345678"

# Format string — hiển thị kết quả đẹp
revenue = 15000000
print(f"Doanh thu: {revenue:,.0f} VNĐ")  # Doanh thu: 15,000,000 VNĐ

💡 So sánh với Excel

Thao tácExcelPython
Xóa khoảng trắngTRIM().strip()
Viết hoa chữ cái đầuPROPER().title()
Tách chuỗiText to Columns.split()
Tìm kiếmFIND() / SEARCH()in hoặc .find()
Thay thếSUBSTITUTE().replace()

Type conversion

Dữ liệu thực tế thường bị sai kiểu — số lưu dạng text, ngày tháng dạng string. Python cho phép chuyển đổi linh hoạt:

python
# Doanh thu đọc từ CSV thường là string
revenue_str = "1500000"
revenue_num = int(revenue_str)      # Chuyển sang int
revenue_float = float(revenue_str)  # Chuyển sang float

# Kết hợp string + number
so_kh = 1250
print("Tổng số khách: " + str(so_kh))  # Cần str() để nối
print(f"Tổng số khách: {so_kh}")        # f-string tự xử lý — khuyên dùng!

Sơ đồ Data Types trong Python:

mermaid
graph TD
    A[Python Data Types] --> B[Scalar — Giá trị đơn]
    A --> C[Collection — Tập hợp]
    B --> D["int — Số nguyên<br/>VD: 150, -5"]
    B --> E["float — Số thập phân<br/>VD: 4.5, 1500000.50"]
    B --> F["str — Chuỗi ký tự<br/>VD: 'Hà Nội'"]
    B --> G["bool — Đúng/Sai<br/>VD: True, False"]
    C --> H["list — Danh sách<br/>[150, 200, 175]"]
    C --> I["tuple — Bộ giá trị<br/>(10.82, 106.63)"]
    C --> J["dict — Từ điển<br/>{'name': 'An', 'age': 28}"]
    C --> K["set — Tập hợp<br/>{'HN', 'HCM', 'ĐN'}"]

    style A fill:#4CAF50,color:#fff
    style B fill:#2196F3,color:#fff
    style C fill:#FF9800,color:#fff

📌 Phần 2: Control Flow — Điều khiển luồng xử lý

Khái niệm

Control flow cho phép chương trình ra quyết định (if/else) và lặp lại (for, while) — hai khả năng mà Excel formulas khó làm được khi dữ liệu phức tạp.

if / elif / else — Ra quyết định

Tương tự hàm IF() trong Excel, nhưng mạnh hơn nhiều — bạn có thể thực hiện nhiều thao tác trong mỗi nhánh điều kiện, không bị giới hạn trả về 1 giá trị:

python
# Phân loại khách hàng theo tổng chi tiêu
total_spent = 8500000

if total_spent >= 10000000:
    tier = "Platinum"
    discount = 0.15
elif total_spent >= 5000000:
    tier = "Gold"
    discount = 0.10
elif total_spent >= 1000000:
    tier = "Silver"
    discount = 0.05
else:
    tier = "Bronze"
    discount = 0.0

print(f"Hạng: {tier} — Giảm giá: {discount:.0%}")
# Output: Hạng: Gold — Giảm giá: 10%

💡 So sánh với Excel & SQL

Excel:  =IF(B2>=10000000, "Platinum", IF(B2>=5000000, "Gold", "Silver"))
SQL:    CASE WHEN total_spent >= 10000000 THEN 'Platinum' ... END
Python: if / elif / else — đọc dễ hơn, làm được nhiều hơn trong mỗi nhánh

for loop — Lặp qua dữ liệu

for loop là công cụ quan trọng nhất của DA khi viết Python — bạn sẽ dùng nó để duyệt qua danh sách, xử lý từng dòng dữ liệu, tính toán hàng loạt:

python
# Duyệt qua danh sách đơn hàng — tính thuế cho từng đơn
orders = [1500000, 2300000, 800000, 4200000, 1100000]
tax_rate = 0.08

for order in orders:
    tax = order * tax_rate
    total = order + tax
    print(f"Đơn hàng: {order:>12,.0f} | Thuế: {tax:>10,.0f} | Tổng: {total:>12,.0f}")

# Output:
# Đơn hàng:    1,500,000 | Thuế:    120,000 | Tổng:    1,620,000
# Đơn hàng:    2,300,000 | Thuế:    184,000 | Tổng:    2,484,000
# ...
python
# enumerate() — lặp kèm số thứ tự, rất hữu ích cho DA
monthly_revenue = [45, 52, 48, 61, 58, 72]  # triệu VNĐ
months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun"]

print("📊 Báo cáo doanh thu 6 tháng đầu năm:")
for i, rev in enumerate(monthly_revenue):
    trend = "📈" if i > 0 and rev > monthly_revenue[i-1] else "📉" if i > 0 else "▶️"
    print(f"  {months[i]}: {rev} triệu VNĐ {trend}")

List comprehension — Viết gọn, chạy nhanh

List comprehension là cách viết for loop trong 1 dòng — rất Pythonic và được dùng cực nhiều trong DA:

python
# Cách thông thường — 4 dòng
high_value_orders = []
for order in orders:
    if order >= 2000000:
        high_value_orders.append(order)

# List comprehension — 1 dòng, cùng kết quả
high_value_orders = [order for order in orders if order >= 2000000]
print(high_value_orders)  # [2300000, 4200000]

# Tính % tăng trưởng MoM (Month over Month)
revenues = [45, 52, 48, 61, 58, 72]  # triệu
mom_growth = [
    round((revenues[i] - revenues[i-1]) / revenues[i-1] * 100, 1)
    for i in range(1, len(revenues))
]
print(f"MoM Growth %: {mom_growth}")
# MoM Growth %: [15.6, -7.7, 27.1, -4.9, 24.1]

while loop — Lặp theo điều kiện

while loop ít dùng hơn for trong DA, nhưng hữu ích khi bạn cần lặp cho đến khi điều kiện thỏa mãn:

python
# Tìm tháng đầu tiên đạt target doanh thu tích lũy
monthly_revenue = [45, 52, 48, 61, 58, 72, 68, 80, 75, 90, 85, 95]
target = 300  # triệu VNĐ

cumulative = 0
month = 0
while cumulative < target and month < len(monthly_revenue):
    cumulative += monthly_revenue[month]
    month += 1

print(f"Đạt target {target} triệu sau {month} tháng (tích lũy: {cumulative} triệu)")
# Output: Đạt target 300 triệu sau 6 tháng (tích lũy: 336 triệu)

📌 Khi nào dùng for vs while?

Tình huốngDùngLý do
Duyệt qua list, dict, fileforBiết trước số lần lặp
Lặp đến khi đạt điều kiệnwhileKhông biết trước bao nhiêu lần
Xử lý từng dòng CSVforĐọc tuần tự từng dòng
Retry kết nối APIwhileThử cho đến khi thành công

📌 Phần 3: Functions — Tái sử dụng code hiệu quả

Khái niệm

Function (hàm) là khối code đóng gói — viết một lần, dùng nhiều lần. Tương tự cách bạn tạo custom function trong Excel (nhưng dễ hơn nhiều). Trong DA, function giúp bạn biến những bước xử lý lặp đi lặp lại thành tool tiện dụng.

Định nghĩa function: def

python
# Function tính KPI cơ bản cho sales report
def calculate_sales_kpi(sales_data):
    """Tính các KPI từ danh sách doanh thu."""
    total = sum(sales_data)
    average = total / len(sales_data)
    highest = max(sales_data)
    lowest = min(sales_data)

    return {
        "total": total,
        "average": round(average),
        "highest": highest,
        "lowest": lowest,
        "count": len(sales_data)
    }

# Sử dụng
daily_sales = [1500000, 2300000, 800000, 4200000, 1100000, 3500000, 2800000]
kpi = calculate_sales_kpi(daily_sales)

print(f"📊 Sales KPI Report:")
print(f"  Tổng doanh thu:   {kpi['total']:>15,.0f} VNĐ")
print(f"  Trung bình/ngày:  {kpi['average']:>15,.0f} VNĐ")
print(f"  Cao nhất:         {kpi['highest']:>15,.0f} VNĐ")
print(f"  Thấp nhất:        {kpi['lowest']:>15,.0f} VNĐ")
print(f"  Số ngày:          {kpi['count']:>15}")

Parameters & default values

python
# Function phân loại khách hàng — dùng lại tiêu chí từ Phần 2
def classify_customer(total_spent, region="Unknown"):
    """Phân loại khách hàng theo chi tiêu và vùng miền."""
    if total_spent >= 10000000:
        tier = "Platinum"
    elif total_spent >= 5000000:
        tier = "Gold"
    elif total_spent >= 1000000:
        tier = "Silver"
    else:
        tier = "Bronze"

    return {"tier": tier, "region": region, "spent": total_spent}

# Gọi function
print(classify_customer(8500000, "Hồ Chí Minh"))
# {'tier': 'Gold', 'region': 'Hồ Chí Minh', 'spent': 8500000}

print(classify_customer(500000))  # Dùng default region
# {'tier': 'Bronze', 'region': 'Unknown', 'spent': 500000}

Lambda functions — Hàm nặc danh

Lambda là function 1 dòng — cực kỳ hữu ích khi dùng với sorted(), map(), filter() trong xử lý dữ liệu:

python
# Sắp xếp danh sách khách hàng theo chi tiêu (giảm dần)
customers = [
    {"name": "An", "spent": 8500000},
    {"name": "Bình", "spent": 12000000},
    {"name": "Cường", "spent": 3200000},
    {"name": "Dung", "spent": 6700000},
]

# Lambda function — sắp xếp theo key "spent"
top_customers = sorted(customers, key=lambda x: x["spent"], reverse=True)
for c in top_customers:
    print(f"  {c['name']}: {c['spent']:,.0f} VNĐ")
# Bình: 12,000,000 VNĐ
# An: 8,500,000 VNĐ
# Dung: 6,700,000 VNĐ
# Cường: 3,200,000 VNĐ

Built-in functions hữu ích cho DA

Python có sẵn nhiều hàm tiện lợi — bạn không cần import thêm gì:

python
sales = [1500000, 2300000, 800000, 4200000, 1100000]
targets = [1200000, 2500000, 1000000, 4000000, 1500000]

# Các hàm aggregate — giống SUM, MAX, MIN trong Excel/SQL
print(f"Tổng:    {sum(sales):,.0f}")       # 9,900,000
print(f"Max:     {max(sales):,.0f}")       # 4,200,000
print(f"Min:     {min(sales):,.0f}")       # 800,000
print(f"Số lượng: {len(sales)}")           # 5

# sorted() — sắp xếp
print(f"Tăng dần: {sorted(sales)}")
print(f"Giảm dần: {sorted(sales, reverse=True)}")

# zip() — ghép 2 danh sách — giống VLOOKUP theo vị trí!
for sale, target in zip(sales, targets):
    status = "✅ Đạt" if sale >= target else "❌ Chưa đạt"
    print(f"  Actual: {sale:>10,.0f} | Target: {target:>10,.0f} | {status}")

# map() + filter() — xử lý hàng loạt
discounted = list(map(lambda x: x * 0.9, sales))   # Giảm 10% tất cả
big_orders = list(filter(lambda x: x >= 2000000, sales))  # Lọc >= 2M
print(f"Sau giảm giá: {[f'{x:,.0f}' for x in discounted]}")
print(f"Đơn lớn (>= 2M): {[f'{x:,.0f}' for x in big_orders]}")

💡 So sánh với SQL

PythonSQLMô tả
sum(list)SUM(column)Tổng
len(list)COUNT(*)Đếm
max(list)MAX(column)Giá trị lớn nhất
sorted(list)ORDER BY columnSắp xếp
filter(func, list)WHERE conditionLọc
zip(list1, list2)JOIN ON positionGhép dữ liệu

📌 Phần 4: File Handling — Đọc/ghi dữ liệu từ file

Khái niệm

Trong thực tế DA, dữ liệu đến từ nhiều nguồn: file CSV xuất từ hệ thống, JSON từ API, Excel từ đồng nghiệp. Python cung cấp các module built-in để đọc/ghi tất cả các format phổ biến mà không cần cài thêm gì.

Context manager: with open()

with open() là cách chuẩn để đọc/ghi file trong Python — tự động đóng file khi xong, tránh lỗi memory leak:

python
# Đọc file text cơ bản
with open("report.txt", "r", encoding="utf-8") as f:
    content = f.read()
    print(content)

# Ghi file text
with open("output.txt", "w", encoding="utf-8") as f:
    f.write("Báo cáo doanh thu tháng 1/2026\n")
    f.write(f"Tổng: {sum(sales):,.0f} VNĐ\n")

⚠️ Luôn dùng encoding="utf-8"

Dữ liệu tiếng Việt bắt buộc phải dùng encoding="utf-8" khi đọc/ghi file. Nếu không, các ký tự có dấu (ă, ê, ơ, ư...) sẽ hiển thị sai thành ký tự lạ.

Đọc/ghi CSV — Format phổ biến nhất

CSV (Comma-Separated Values) là format phổ biến nhất trong DA — hầu hết hệ thống đều xuất dữ liệu dạng CSV:

python
import csv

# ===== ĐỌC FILE CSV =====
with open("sales_data.csv", "r", encoding="utf-8") as f:
    reader = csv.DictReader(f)  # Đọc từng dòng dưới dạng dict
    sales_records = []
    for row in reader:
        sales_records.append({
            "product": row["product_name"],
            "revenue": float(row["revenue"]),
            "quantity": int(row["quantity"])
        })

# Tính tổng doanh thu
total_revenue = sum(r["revenue"] for r in sales_records)
print(f"Tổng doanh thu: {total_revenue:,.0f} VNĐ")

# ===== GHI FILE CSV =====
# Tạo summary report
summary = [
    {"category": "Electronics", "total_revenue": 45000000, "order_count": 120},
    {"category": "Fashion", "total_revenue": 32000000, "order_count": 250},
    {"category": "Food", "total_revenue": 18000000, "order_count": 400},
]

with open("summary_report.csv", "w", encoding="utf-8", newline="") as f:
    writer = csv.DictWriter(f, fieldnames=["category", "total_revenue", "order_count"])
    writer.writeheader()
    writer.writerows(summary)
    print("✅ Đã xuất file summary_report.csv")

Đọc/ghi JSON — Dữ liệu từ API

JSON là format chuẩn khi làm việc với API — lấy dữ liệu từ web services, social media, CRM:

python
import json

# ===== ĐỌC FILE JSON =====
with open("customers.json", "r", encoding="utf-8") as f:
    customers = json.load(f)  # Parse JSON thành Python dict/list

# Truy vấn dữ liệu từ JSON
for customer in customers:
    print(f"{customer['name']}{customer['city']}{customer['total_spent']:,.0f} VNĐ")

# ===== GHI FILE JSON =====
report = {
    "report_date": "2026-02-18",
    "total_customers": len(customers),
    "kpi": {
        "avg_spent": sum(c["total_spent"] for c in customers) / len(customers),
        "top_city": "Hồ Chí Minh"
    }
}

with open("report.json", "w", encoding="utf-8") as f:
    json.dump(report, f, ensure_ascii=False, indent=2)
    # ensure_ascii=False → giữ tiếng Việt, indent=2 → format đẹp

📌 CSV vs JSON — Khi nào dùng gì?

Đặc điểmCSVJSON
Cấu trúcBảng phẳng (rows + columns)Phân cấp (nested objects)
Đọc bằngExcel, Google Sheets, PythonPython, JavaScript, API
Use caseBáo cáo bán hàng, export databaseDữ liệu API, config, metadata
Kích thướcNhỏ hơnLớn hơn (có key names)
Ví dụSales report, customer listAPI response, app settings

Workflow xử lý file trong DA

mermaid
flowchart LR
    A["📂 Nguồn dữ liệu<br/>CSV / JSON / Excel / API"] --> B["📥 Đọc file<br/>csv.DictReader<br/>json.load"]
    B --> C["🔧 Xử lý<br/>Clean, Transform<br/>Calculate"]
    C --> D["📤 Xuất kết quả<br/>csv.DictWriter<br/>json.dump"]
    D --> E["📊 Báo cáo<br/>Report / Dashboard"]

    style A fill:#E3F2FD,stroke:#1976D2
    style B fill:#E8F5E9,stroke:#388E3C
    style C fill:#FFF3E0,stroke:#F57C00
    style D fill:#F3E5F5,stroke:#7B1FA2
    style E fill:#FFEBEE,stroke:#D32F2F
🔍 Ví dụ hoàn chỉnh: Đọc CSV → Xử lý → Xuất JSON
python
import csv
import json

# Bước 1: Đọc file CSV
with open("raw_orders.csv", "r", encoding="utf-8") as f:
    reader = csv.DictReader(f)
    orders = [row for row in reader]

# Bước 2: Xử lý — tính tổng theo category
category_totals = {}
for order in orders:
    cat = order["category"]
    revenue = float(order["revenue"])
    if cat in category_totals:
        category_totals[cat]["revenue"] += revenue
        category_totals[cat]["count"] += 1
    else:
        category_totals[cat] = {"revenue": revenue, "count": 1}

# Bước 3: Xuất kết quả JSON
result = {
    "report_date": "2026-02-18",
    "summary": [
        {"category": k, "total_revenue": v["revenue"], "order_count": v["count"]}
        for k, v in sorted(category_totals.items(), key=lambda x: x[1]["revenue"], reverse=True)
    ]
}

with open("category_report.json", "w", encoding="utf-8") as f:
    json.dump(result, f, ensure_ascii=False, indent=2)

print("✅ Pipeline hoàn tất! Đã xuất category_report.json")

🔑 Từ khóa chính

Tiếng ViệtEnglishGiải thíchVí dụ
Kiểu dữ liệuData TypeLoại giá trị: số, chuỗi, danh sách...int, str, list
HàmFunctionKhối code tái sử dụng, đóng gói logicdef calculate_kpi():
Vòng lặpLoopLặp lại thao tác cho nhiều phần tửfor item in list:
Danh sáchListCấu trúc lưu nhiều giá trị, có thứ tự[150, 200, 175]
Từ điểnDictionaryLưu dữ liệu dạng key-value{"name": "An"}
BiếnVariableTên tham chiếu đến một giá trịrevenue = 1500000
Điều kiệnConditionBiểu thức Đúng/Sai để ra quyết địnhif x > 100:
ChuỗiStringDữ liệu dạng văn bản"Nguyễn Văn An"

📊 Tổng kết buổi học

Checklist kỹ năng — Bạn đã đạt được gì?

#Kỹ năngCheck
1Khai báo biến với đúng data type (int, float, str, bool)
2Sử dụng listdict để lưu trữ dữ liệu DA
3Làm sạch string: strip(), title(), split(), replace()
4Viết if/elif/else để phân loại dữ liệu
5Dùng for loop và enumerate() để duyệt dữ liệu
6Viết list comprehension
7Định nghĩa function với def, parameters và return
8Sử dụng lambda, sorted(), zip(), map(), filter()
9Đọc/ghi file CSV bằng module csv
10Đọc/ghi file JSON bằng module json

Hành trình DA — Bạn đang ở đâu?

📍 Buổi 1–2: Foundation (Tư duy DA, Data Literacy)
📍 Buổi 3–4: Excel (Data Cleaning, Pivot Table, Dashboard)
📍 Buổi 5–6: SQL (SELECT, JOIN, Window Functions, Data Warehouse)
👉 Buổi 7: Python Basics ← BẠN ĐANG Ở ĐÂY
🔜 Buổi 8–9: Pandas — Xử lý dữ liệu bằng Python
🔜 Buổi 10–11: Data Visualization với Python

Kết nối kiến thức

Ở Excel bạn đã biếtỞ SQL bạn đã biếtGiờ Python mở rộng thêm
SUM(), AVERAGE()SUM(), AVG()sum(), len(), custom functions
IF() nestedCASE WHENif/elif/else — không giới hạn logic
VLOOKUP / INDEX MATCHJOINdict lookup, zip()
Pivot TableGROUP BYfor loop + dict aggregation
Text to ColumnsSPLIT_PART().split(), .strip(), .replace()
Export CSVCOPY TOcsv.DictWriter, json.dump

💡 Bước tiếp theo — Buổi 8

Buổi 8 sẽ giới thiệu Pandas — thư viện Python mạnh nhất cho DA. Pandas kết hợp sức mạnh của Excel (bảng dữ liệu) + SQL (query) + Python (tự động hóa) vào một DataFrame duy nhất. Tất cả những gì bạn học hôm nay — list, dict, for loop, function — sẽ được dùng liên tục khi làm việc với Pandas!


🔗 Tài liệu tham khảo

  1. Python Official Tutorialdocs.python.org/3/tutorial — Tài liệu chính thức, đầy đủ nhất
  2. W3Schools Pythonw3schools.com/python — Học tương tác, có ví dụ chạy thử
  3. Real Pythonrealpython.com — Hướng dẫn chuyên sâu với ví dụ thực tế
  4. Google Colabcolab.research.google.com — Viết Python trực tiếp trên trình duyệt, không cần cài đặt
  5. Python for Data Analysis (Wes McKinney) — Sách kinh điển về Python cho DA, tác giả là người tạo ra Pandas