Appearance
📝 Python cho DA: Chỉ cần 20% kiến thức để làm 80% công việc
Mở đầu — "Tôi ghét lập trình. Cho đến khi tôi viết 3 dòng code thay 30 phút Excel."
Linh, 26 tuổi, Data Analyst tại một startup e-commerce ở TP.HCM — loại startup bán mỹ phẩm online, đội ngũ 40 người, mỗi tháng xử lý khoảng 15.000 đơn hàng.
Linh giỏi Excel. Thật sự giỏi. VLOOKUP, Pivot Table, Conditional Formatting — Linh làm nhoay nhoáy. Sếp khen. Đồng nghiệp nhờ. Linh là "phù thủy Excel" của công ty.
Nhưng mỗi sáng thứ Hai, Linh muốn nghỉ việc.
Không phải vì công việc khó. Mà vì báo cáo tuần. Quy trình như sau: tải file CSV đơn hàng từ hệ thống → mở Excel → xóa dòng trống → sửa format ngày tháng (hệ thống xuất 2026-02-16, sếp muốn 16/02/2026) → tách cột "Họ tên" thành "Họ" và "Tên" → tính doanh thu theo category → tính growth so với tuần trước → format bảng cho đẹp → gửi email cho sếp.
Mỗi thứ Hai. Mỗi tuần. Giống hệt nhau. Mất 45 phút.
45 phút × 52 tuần = 39 giờ mỗi năm — gần 5 ngày làm việc — chỉ để làm một việc mà bước nào cũng giống bước trước. Copy. Paste. Kéo. Thả. Lặp lại. Linh cảm thấy mình là robot, nhưng robot thì không biết chán.
Một hôm, Linh ngồi cà phê với Khoa — anh bạn học cùng đại học, giờ là DA tại một công ty fintech. Khoa hỏi: "Báo cáo tuần mày mất bao lâu?"
"45 phút."
Khoa cười. Mở laptop. Gõ vài dòng gì đó. Chạy. Xong.
"Tao mất 10 giây. Vì tao viết script Python chạy tự động."
Linh nhìn màn hình Khoa. Không hiểu gì cả. Toàn chữ với dấu ngoặc. Nhưng kết quả thì y chang file Excel mà Linh mất 45 phút — bảng doanh thu theo category, growth rate, format đẹp, sẵn sàng gửi sếp.
"Tao không phải lập trình viên," Khoa nói. "Tao chỉ biết đủ Python để không phải làm việc nhàm chán. 20% kiến thức, 80% công việc."
Linh về nhà tối đó, mở Google, gõ: "Python for Data Analyst beginner."
Và đó là lúc mọi thứ thay đổi.
🎯 Bài blog này kể tiếp hành trình của Linh — từ người "ghét lập trình" đến người tự động hóa báo cáo tuần bằng Python. Bạn sẽ thấy Python không đáng sợ như bạn nghĩ — nếu bạn biết học đúng thứ, đúng cách.
Phần 1: Tuần đầu tiên — "Hóa ra Python giống đi chợ hơn là lập trình"
Linh bắt đầu học Python vào buổi tối, sau giờ làm. Mở Google Colab — không cần cài đặt gì, chỉ cần trình duyệt. Gõ dòng code đầu tiên:
python
print("Xin chào, tôi là Linh!")Nhấn chạy. Màn hình hiện: Xin chào, tôi là Linh!
"Hả? Vậy thôi á?" Linh nghĩ. Không có gì đáng sợ cả.
Rồi Linh học biến (variable). Trong Excel, bạn gõ giá trị vào ô A1. Trong Python, bạn đặt tên cho giá trị:
python
ten_khach = "Nguyễn Văn An"
so_don_hang = 150
doanh_thu = 25_500_000.0
da_thanh_toan = TrueBiến giống như hộp có dán nhãn. Hộp tên doanh_thu chứa số 25,500,000. Hộp tên ten_khach chứa chữ "Nguyễn Văn An". Muốn lấy, gọi tên hộp. Đơn giản.
Nhưng "aha moment" thực sự đến khi Linh học list và dictionary.
List — Linh nghĩ ngay đến danh sách đi chợ. Mẹ Linh viết: trứng, rau muống, thịt heo, nước mắm. Trong Python:
python
# Danh sách doanh thu 7 ngày — giống 1 cột Excel
daily_sales = [12_000_000, 15_500_000, 9_800_000, 22_000_000,
18_300_000, 11_200_000, 16_700_000]
# Ngày bán nhiều nhất?
print(max(daily_sales)) # 22,000,000
# Tổng tuần?
print(sum(daily_sales)) # 105,500,000
# Trung bình ngày?
print(sum(daily_sales) / len(daily_sales)) # 15,071,428.57Trong Excel, Linh sẽ gõ =MAX(A1:A7), =SUM(A1:A7), =AVERAGE(A1:A7). Trong Python, cũng y vậy — chỉ khác cú pháp. Không khó hơn, chỉ khác.
Dictionary thì sao? Linh nghĩ đến sổ danh bạ điện thoại. Mỗi tên tương ứng một số. Trong Python, mỗi key tương ứng một value:
python
# Thông tin 1 khách hàng — giống 1 dòng trong bảng Excel
khach_hang = {
"ten": "Nguyễn Văn An",
"tuoi": 28,
"thanh_pho": "Hà Nội",
"tong_chi_tieu": 5_200_000
}
print(khach_hang["ten"]) # Nguyễn Văn An
print(khach_hang["tong_chi_tieu"]) # 5,200,000Linh nhận ra: list giống một cột trong Excel, dictionary giống một dòng. Vậy list chứa nhiều dictionary sẽ giống... cả bảng Excel! Đúng rồi — và đó chính xác là cách Pandas DataFrame hoạt động (nhưng chuyện đó để buổi sau).
Cuối tuần đầu tiên, Linh viết được đoạn code tính tổng doanh thu theo category — thứ mà trong Excel mất Pivot Table, filter, vài lần click:
python
don_hang = [
{"san_pham": "Son môi", "category": "Makeup", "gia": 350_000},
{"san_pham": "Sữa rửa mặt", "category": "Skincare", "gia": 220_000},
{"san_pham": "Phấn nền", "category": "Makeup", "gia": 480_000},
{"san_pham": "Toner", "category": "Skincare", "gia": 310_000},
{"san_pham": "Mascara", "category": "Makeup", "gia": 190_000},
]
# Tính tổng doanh thu theo category
tong_theo_category = {}
for don in don_hang:
cat = don["category"]
if cat in tong_theo_category:
tong_theo_category[cat] += don["gia"]
else:
tong_theo_category[cat] = don["gia"]
print(tong_theo_category)
# {'Makeup': 1,020,000, 'Skincare': 530,000}"Mình vừa viết Pivot Table bằng code," Linh nhắn Khoa.
"Đó mới chỉ là khởi đầu," Khoa trả lời.
Phần 2: Tuần thứ hai — "Function là công thức nấu ăn, loop là máy giặt"
Thứ Hai tuần sau. Linh vẫn làm báo cáo bằng Excel — 45 phút. Nhưng tối về, Linh mở Colab và học tiếp.
Function — Khoa giải thích bằng ví dụ nấu ăn: "Mày biết nấu phở không? Nấu nước dùng, trụng bánh, xắt thịt, rắc hành — mỗi lần nấu đều giống nhau, đúng không? Function là công thức — viết một lần, gọi bao nhiêu lần cũng được."
python
def tinh_growth(tuan_nay, tuan_truoc):
"""Tính % tăng trưởng — dùng cho báo cáo tuần"""
if tuan_truoc == 0:
return 0
return round((tuan_nay - tuan_truoc) / tuan_truoc * 100, 1)
# Gọi function — như áp dụng công thức
print(tinh_growth(120_000_000, 100_000_000)) # 20.0%
print(tinh_growth(95_000_000, 100_000_000)) # -5.0%
print(tinh_growth(100_000_000, 0)) # 0Trong Excel, Linh viết =(B2-B1)/B1*100 rồi kéo xuống. Trong Python, Linh viết function một lần rồi gọi tên — không cần kéo, không sợ sai ô tham chiếu, không lo absolute reference $B$1.
Vòng lặp (loop) — Linh nghĩ đến máy giặt. Bạn cho quần áo vào, bấm nút, máy tự xoay — xoay đi xoay lại cho đến khi sạch. Bạn không cần đứng giặt từng cái. Loop cũng vậy — viết hành động một lần, Python tự lặp lại cho đến khi xong.
python
# Phân loại khách hàng VIP — Excel phải dùng IF lồng IF
khach_hang_list = [
{"ten": "An", "chi_tieu": 8_000_000},
{"ten": "Bình", "chi_tieu": 2_500_000},
{"ten": "Chi", "chi_tieu": 15_000_000},
{"ten": "Dũng", "chi_tieu": 500_000},
]
for kh in khach_hang_list:
if kh["chi_tieu"] >= 10_000_000:
kh["hang"] = "VIP"
elif kh["chi_tieu"] >= 3_000_000:
kh["hang"] = "Thân thiết"
else:
kh["hang"] = "Thường"
print(f"{kh['ten']}: {kh['hang']}")
# An: Thân thiết
# Bình: Thường
# Chi: VIP
# Dũng: ThườngTrong Excel, Linh sẽ viết: =IF(B2>=10000000,"VIP",IF(B2>=3000000,"Thân thiết","Thường")) — rồi kéo xuống 15.000 dòng, cầu nguyện không sai dấu ngoặc. Trong Python? Viết một lần, chạy cho bất kỳ bao nhiêu khách hàng. 15 nghìn hay 15 triệu — code y hệt.
💡 So sánh nhanh: Excel vs Python
| Thao tác | Excel | Python |
|---|---|---|
| Phân loại IF lồng nhau | =IF(IF(IF(...))) — dễ sai ngoặc | if/elif/else — đọc như tiếng Anh |
| Lặp lại cho 10.000 dòng | Kéo công thức xuống, chờ Excel tính | Vòng for — tự chạy hết |
| Tính growth nhiều category | Pivot Table + nhiều bước | Function gọi trong loop |
| Lưu lại quy trình | Không được (tay làm lại) | Lưu file .py, chạy lại bất cứ lúc nào |
Linh bắt đầu thấy pattern: Python không thay thế tư duy phân tích của cô — nó tăng tốc tư duy đó. Những gì cô biết làm trong Excel, Python làm nhanh hơn, chính xác hơn, và quan trọng nhất — lặp lại được mà không tốn thêm công sức.
Phần 3: Tuần thứ ba — "10 giây thay 45 phút"
Linh đã biết biến, list, dictionary, function, loop. Còn thiếu một mảnh ghép cuối: đọc/ghi file.
Vì công việc DA không phải gõ data bằng tay — data nằm trong file CSV, JSON, Excel. Python cần đọc được các file đó.
python
import csv
# Đọc file CSV — thay vì mở Excel, chờ load 5 phút
with open("don_hang_tuan.csv", "r", encoding="utf-8") as f:
reader = csv.DictReader(f)
orders = list(reader)
print(f"Tổng số đơn: {len(orders)}")
print(f"Đơn đầu tiên: {orders[0]}")Linh nhìn code. 4 dòng. Đọc xong cả file. Không cần mở Excel. Không cần chờ load. Không đơ máy.
Rồi Linh viết function xử lý format ngày (thứ mà trong Excel phải dùng TEXT() hoặc format cell thủ công):
python
def format_ngay(ngay_goc):
"""Đổi '2026-02-16' thành '16/02/2026'"""
parts = ngay_goc.split("-")
return f"{parts[2]}/{parts[1]}/{parts[0]}"
print(format_ngay("2026-02-16")) # 16/02/2026Đêm thứ Bảy, Linh ngồi viết script tổng hợp — kết hợp tất cả những gì đã học. Đọc file CSV. Làm sạch data. Tính doanh thu theo category. Tính growth. Ghi kết quả ra file mới. Không Pivot Table. Không kéo thả. Không copy paste.
Sáng thứ Hai. Linh mở terminal. Gõ lệnh chạy script.
10 giây. Xong.
File báo cáo nằm gọn trên desktop. Đúng format. Đúng data. Sẵn sàng gửi sếp.
Linh nhìn đồng hồ. 8 giờ 02 phút sáng. Bình thường lúc này cô mới bắt đầu mở Excel. Hôm nay, cô đã xong — và còn thừa 43 phút để uống cà phê, đọc tin tức, hoặc làm việc phân tích thực sự có giá trị.
Linh nhắn Khoa: "20% kiến thức, 80% công việc. Mày nói đúng."
📊 Hành trình của Linh tóm gọn
| Tuần | Linh học gì | Tương đương Excel |
|---|---|---|
| 1 | Biến, list, dictionary | Ô, cột, dòng trong bảng |
| 2 | Function, loop, if/else | Công thức, kéo xuống, IF lồng nhau |
| 3 | Đọc/ghi file CSV | Mở file, lưu file |
| Kết quả | Script chạy 10 giây | 45 phút thủ công |
Kết luận
Linh không trở thành lập trình viên. Cô không biết xây web, không biết làm app, không biết thuật toán sắp xếp nào chạy nhanh nhất. Cô cũng không cần biết.
Linh biết đủ Python để không phải làm lại công việc nhàm chán mỗi tuần. Biết đủ để đọc file, xử lý data, tính toán, ghi kết quả. Biết đủ để khi sếp hỏi "Có tự động hóa được không?", cô trả lời "Được" — thay vì "Để em làm tay."
Python là công cụ, không phải mục tiêu. Giống như bạn học lái xe để đi làm, không phải để trở thành tay đua F1. Bạn học Python để phân tích dữ liệu nhanh hơn, không phải để trở thành software engineer.
Hành trình của Linh bắt đầu bằng một câu print("Xin chào"). Hành trình của bạn cũng có thể bắt đầu hôm nay — ngay bây giờ, ngay tại buổi học này.
Và bạn sẽ ngạc nhiên khi biết: chỉ cần 20% kiến thức Python, bạn đã có thể làm 80% công việc DA hàng ngày.
Điểm chính cần nhớ
- Python là công cụ, không phải mục tiêu. Bạn học đủ dùng cho DA — không cần thành developer.
- Data types cơ bản (int, float, str, bool, list, dict) là nền tảng — hiểu chúng giống như hiểu ô, cột, dòng trong Excel.
- Function = công thức nấu ăn. Viết một lần, dùng mãi — không cần kéo công thức, không sợ sai tham chiếu ô.
- Loop = máy giặt. Viết hành động một lần, Python tự lặp lại cho dù data có 100 hay 1 triệu dòng.
- Đọc/ghi file là kỹ năng thiết yếu — data thực tế nằm trong CSV, JSON, Excel, không phải gõ tay.
- So sánh Excel vs Python: Excel giỏi khám phá nhanh, Python giỏi tự động hóa và lặp lại. Không thay thế nhau — bổ sung cho nhau.
- Nguyên tắc 80/20: Variables, data types, if/else, for loop, function, file I/O — chỉ 6 khái niệm này đã đủ để bạn tự động hóa phần lớn công việc DA lặp đi lặp lại.