Nội dung

1. Lọc dữ liệu theo điều kiện

Trong Pandas, có thể lọc dữ liệu bằng điều kiện giống như trong SQL hoặc Excel filter.

Ví dụ:

import pandas as pd

df = pd.read_csv("sales.csv")

Lọc các dòng có doanh thu lớn hơn 1000:

df[df["Revenue"] > 1000]

2. Lọc dữ liệu với nhiều điều kiện

Trong Pandas sử dụng các toán tử logic:

Toán tửÝ nghĩa
&AND
|OR
~NOT

Ví dụ:

Lọc doanh thu > 1000 và khu vực North

df[(df["Revenue"] > 1000) & (df["Region"] == "North")]

Ví dụ khác:

df[(df["Revenue"] > 1000) | (df["Region"] == "South")]

Phủ định điều kiện:

df[~(df["Region"] == "North")]

3. Sắp xếp dữ liệu

Pandas sử dụng hàm:

sort_values()

Sắp xếp tăng dần

df.sort_values(by="Revenue")

Sắp xếp giảm dần

df.sort_values(by="Revenue", ascending=False)

Sắp xếp theo nhiều cột

Ví dụ:

df.sort_values(by=["Region", "Revenue"])

Ý nghĩa:

  1. Sắp xếp theo Region

  2. Trong mỗi Region sắp xếp theo Revenue


4. Thay đổi hình dạng dữ liệu

Trong phân tích dữ liệu đôi khi cần chuyển đổi cấu trúc bảng.

4.1 Pivot

Pivot giúp tạo bảng tổng hợp giống Pivot Table trong Excel.

Ví dụ:

df.pivot(index="Date", columns="Product", values="Revenue")

Ý nghĩa:

  • Hàng: Date

  • Cột: Product

  • Giá trị: Revenue


4.2 Melt

Melt chuyển bảng từ dạng rộng sang dạng dài.

Ví dụ:

df.melt(id_vars="Date", value_vars=["Product", "Revenue"])

III. LÝ THUYẾT LIÊN QUAN

1. Boolean Indexing

Boolean indexing là kỹ thuật lọc dữ liệu dựa trên điều kiện True/False.

Ví dụ:

df[df["Revenue"] > 1000]

Pandas sẽ:

  1. Tạo danh sách True/False

  2. Chỉ giữ lại các dòng có giá trị True.


2. Pivot Table

Pivot Table giúp:

  • Tổng hợp dữ liệu

  • Phân tích dữ liệu theo nhiều chiều

Giống chức năng Pivot Table trong Excel.


IV. TRÌNH TỰ THỰC HIỆN

Bước 1: Import thư viện

import pandas as pd

Bước 2: Đọc dữ liệu

df = pd.read_csv("sales.csv")

Bước 3: Lọc dữ liệu

df[df["Revenue"] > 1000]

Bước 4: Lọc nhiều điều kiện

df[(df["Revenue"] > 1000) & (df["Region"] == "North")]

Bước 5: Sắp xếp dữ liệu

df.sort_values(by="Revenue")

Bước 6: Tạo Pivot Table

df.pivot(index="Date", columns="Product", values="Revenue")