Appearance
📘 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ẽ:
- Hiểu data types cơ bản:
int,float,string,list,dict,tuple - Viết function đơn giản để xử lý dữ liệu
- Đọc/ghi file CSV, JSON, Excel bằng Python
- Sử dụng control flow:
if/else,forloop,whileloop
📋 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ểu | Mô tả | Ví dụ DA | Tương đương Excel |
|---|---|---|---|
int | Số nguyên | Số đơn hàng: 150, tuổi: 28 | Number (0 decimals) |
float | Số thập phân | Doanh thu: 1500000.50, rating: 4.5 | Number (2 decimals) |
str | Chuỗ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: False | TRUE/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ểm | Ví dụ DA | Tương đương SQL/Excel |
|---|---|---|---|
list | Có thứ tự, thay đổi được | Danh sách doanh thu theo ngày | Cột trong Excel |
tuple | Có thứ tự, không thay đổi | Tọa độ GPS cửa hàng | — |
dict | Cặp key-value | Thông tin 1 khách hàng | 1 row trong bảng |
set | Không trùng lặp, không thứ tự | Danh sách thành phố unique | SELECT 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ác | Excel | Python |
|---|---|---|
| Xóa khoảng trắng | TRIM() | .strip() |
| Viết hoa chữ cái đầu | PROPER() | .title() |
| Tách chuỗi | Text to Columns | .split() |
| Tìm kiếm | FIND() / 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ánhfor 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ống | Dùng | Lý do |
|---|---|---|
| Duyệt qua list, dict, file | for | Biết trước số lần lặp |
| Lặp đến khi đạt điều kiện | while | Không biết trước bao nhiêu lần |
| Xử lý từng dòng CSV | for | Đọc tuần tự từng dòng |
| Retry kết nối API | while | Thử 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
| Python | SQL | Mô 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 column | Sắp xếp |
filter(func, list) | WHERE condition | Lọc |
zip(list1, list2) | JOIN ON position | Ghé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ểm | CSV | JSON |
|---|---|---|
| Cấu trúc | Bảng phẳng (rows + columns) | Phân cấp (nested objects) |
| Đọc bằng | Excel, Google Sheets, Python | Python, JavaScript, API |
| Use case | Báo cáo bán hàng, export database | Dữ liệu API, config, metadata |
| Kích thước | Nhỏ hơn | Lớn hơn (có key names) |
| Ví dụ | Sales report, customer list | API 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ệt | English | Giải thích | Ví dụ |
|---|---|---|---|
| Kiểu dữ liệu | Data Type | Loại giá trị: số, chuỗi, danh sách... | int, str, list |
| Hàm | Function | Khối code tái sử dụng, đóng gói logic | def calculate_kpi(): |
| Vòng lặp | Loop | Lặp lại thao tác cho nhiều phần tử | for item in list: |
| Danh sách | List | Cấu trúc lưu nhiều giá trị, có thứ tự | [150, 200, 175] |
| Từ điển | Dictionary | Lưu dữ liệu dạng key-value | {"name": "An"} |
| Biến | Variable | Tên tham chiếu đến một giá trị | revenue = 1500000 |
| Điều kiện | Condition | Biểu thức Đúng/Sai để ra quyết định | if x > 100: |
| Chuỗi | String | Dữ 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ăng | Check |
|---|---|---|
| 1 | Khai báo biến với đúng data type (int, float, str, bool) | ☐ |
| 2 | Sử dụng list và dict để lưu trữ dữ liệu DA | ☐ |
| 3 | Làm sạch string: strip(), title(), split(), replace() | ☐ |
| 4 | Viết if/elif/else để phân loại dữ liệu | ☐ |
| 5 | Dùng for loop và enumerate() để duyệt dữ liệu | ☐ |
| 6 | Viết list comprehension | ☐ |
| 7 | Định nghĩa function với def, parameters và return | ☐ |
| 8 | Sử 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 PythonKết nối kiến thức
| Ở Excel bạn đã biết | Ở SQL bạn đã biết | Giờ Python mở rộng thêm |
|---|---|---|
SUM(), AVERAGE() | SUM(), AVG() | sum(), len(), custom functions |
IF() nested | CASE WHEN | if/elif/else — không giới hạn logic |
| VLOOKUP / INDEX MATCH | JOIN | dict lookup, zip() |
| Pivot Table | GROUP BY | for loop + dict aggregation |
| Text to Columns | SPLIT_PART() | .split(), .strip(), .replace() |
| Export CSV | COPY TO | csv.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
- Python Official Tutorial — docs.python.org/3/tutorial — Tài liệu chính thức, đầy đủ nhất
- W3Schools Python — w3schools.com/python — Học tương tác, có ví dụ chạy thử
- Real Python — realpython.com — Hướng dẫn chuyên sâu với ví dụ thực tế
- Google Colab — colab.research.google.com — Viết Python trực tiếp trên trình duyệt, không cần cài đặt
- 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