
Python Pandas Cho Dân Excel: Đọc File, Lọc Dữ Liệu, Pivot Và Visualize Trong 30 Phút
Chia sẻ
"Hướng dẫn Python Pandas dành cho người đã biết Excel: đọc file, lọc dữ liệu, merge, pivot, groupby, và tạo biểu đồ. So sánh từng thao tác Excel tương ứng với code Python."
Nếu bạn đã thành thạo Excel và muốn nâng cấp lên Python, Pandas chính là bước chuyển tự nhiên nhất. Pandas là thư viện Python xử lý dữ liệu dạng bảng (DataFrame) — giao diện rất giống Excel nhưng mạnh hơn, nhanh hơn, và tự động hóa được.
Bài viết này viết cho "dân Excel" — mỗi thao tác Python đều được so sánh với cách làm tương ứng trong Excel.

1. Cài Đặt Và Import
# Cài đặt (chạy 1 lần)
pip install pandas openpyxl matplotlib
# Import
import pandas as pd
import matplotlib.pyplot as plt2. Đọc File — Giống Mở File Excel
# Đọc file Excel
df = pd.read_excel("doanh_thu.xlsx", sheet_name="Sheet1")
# Đọc file CSV
df = pd.read_csv("data.csv", encoding="utf-8")
# Xem 5 dòng đầu (= Ctrl+Home trong Excel)
df.head()
# Thông tin tổng quan
df.info() # Kiểu dữ liệu, null count
df.describe() # Thống kê: count, mean, std, min, max
df.shape # (số dòng, số cột)Excel: Mở file → nhìn bảng. Python: df.head() → nhìn 5 dòng đầu.
3. Lọc Dữ Liệu — Giống Filter/AutoFilter
# Excel: Filter cột Phòng ban = "IT"
# Python:
df_it = df[df["phong_ban"] == "IT"]
# Nhiều điều kiện (AND) — Excel: filter 2 cột
df_filtered = df[(df["phong_ban"] == "IT") & (df["luong"] > 15000000)]
# OR
df_filtered = df[(df["phong_ban"] == "IT") | (df["phong_ban"] == "Marketing")]
# Chứa text — Excel: Filter Contains
df_nguyen = df[df["ho_ten"].str.contains("Nguyễn")]
# Top N — Excel: Sort + lấy N dòng đầu
top10 = df.nlargest(10, "doanh_thu")4. Thêm Cột Tính Toán — Giống Viết Công Thức
# Excel: =C2*12 rồi kéo xuống
# Python: tự áp dụng cho cả cột
df["luong_nam"] = df["luong"] * 12
# Excel: =IF(D2>20000000, "Cao", "Thấp")
import numpy as np
df["muc_luong"] = np.where(df["luong"] > 20000000, "Cao", "Thấp")
# Excel: =VLOOKUP
# Python: merge (xem phần 5)5. Merge — Giống VLOOKUP/INDEX-MATCH
# Excel: =VLOOKUP(A2, KhachHang!A:C, 2, 0)
# Python:
df_result = pd.merge(df_donhang, df_khachhang, on="ma_kh", how="left")
# Merge nhiều bảng
df = (df_donhang
.merge(df_khachhang, on="ma_kh", how="left")
.merge(df_sanpham, on="ma_sp", how="left")
)
# how options:
# "inner" = chỉ dòng khớp (VLOOKUP bỏ #N/A)
# "left" = giữ tất cả bảng trái (VLOOKUP giữ #N/A)
# "outer" = giữ tất cả 2 bảng6. GroupBy — Giống Pivot Table
# Excel: Pivot Table → Rows: phong_ban, Values: SUM(luong)
df.groupby("phong_ban")["luong"].sum()
# Nhiều aggregation
df.groupby("phong_ban").agg(
so_nv=("ho_ten", "count"),
luong_tb=("luong", "mean"),
luong_max=("luong", "max"),
tong_luong=("luong", "sum")
).round(0)
# Group theo nhiều cột
df.groupby(["phong_ban", "chuc_vu"])["luong"].mean()7. Pivot Table Trong Pandas
# Excel: Pivot Table Rows=Tháng, Cols=Khu vực, Values=SUM(Doanh thu)
pd.pivot_table(
df,
values="doanh_thu",
index="thang",
columns="khu_vuc",
aggfunc="sum",
fill_value=0,
margins=True # Thêm tổng = Grand Total
)8. Biểu Đồ — Giống Insert Chart
# Bar chart — Doanh thu theo phòng ban
df.groupby("phong_ban")["doanh_thu"].sum().plot(
kind="bar", color="teal", title="Doanh thu theo Phòng ban"
)
plt.ylabel("VNĐ")
plt.tight_layout()
plt.savefig("chart.png", dpi=150) # Lưu ảnh
plt.show()
# Line chart — Xu hướng doanh thu theo tháng
df.groupby("thang")["doanh_thu"].sum().plot(
kind="line", marker="o", color="orange"
)
# Pie chart — Cơ cấu
df.groupby("khu_vuc")["doanh_thu"].sum().plot(kind="pie", autopct="%1.1f%%")9. Xuất Kết Quả
# Xuất ra file Excel
df.to_excel("ket_qua.xlsx", index=False, sheet_name="BaoCao")
# Xuất nhiều sheet
with pd.ExcelWriter("bao_cao.xlsx") as writer:
df_it.to_excel(writer, sheet_name="IT", index=False)
df_sale.to_excel(writer, sheet_name="Sale", index=False)
# Xuất CSV
df.to_csv("output.csv", index=False, encoding="utf-8-sig")10. Cheat Sheet: Excel ↔ Pandas
Mở file: File→Open ↔ pd.read_excel()
Lọc: Filter ↔ df[df["col"]==val]
Sắp xếp: Sort ↔ df.sort_values()
VLOOKUP: VLOOKUP() ↔ pd.merge()
Pivot: PivotTable ↔ pd.pivot_table()
Biểu đồ: Insert Chart ↔ df.plot()
Lưu file: Ctrl+S ↔ df.to_excel()
Kết Luận
Pandas là "Excel trên steroid" — cùng logic nhưng nhanh hơn, xử lý được dữ liệu lớn hơn, và tự động hóa hoàn toàn. Nếu bạn đã giỏi Excel, bạn sẽ học Pandas rất nhanh vì tư duy giống nhau.
Khám phá thêm Python cho Data tại Trà Đá Data! 🍵
Bình luận
Đăng nhập để tham gia bình luận
Đăng nhậpNhận bài viết mới nhất
Đăng ký để nhận thông báo khi có bài viết mới. Không spam, chỉ kiến thức chất lượng.
Bài viết liên quan
Khám phá thêm các bài viết cùng chủ đề

