Chuyển đến nội dung chính

Hướng dẫn Chọn Cột trong Python

Sử dụng Python Pandas để chọn cột từ DataFrame. Làm theo hướng dẫn với ví dụ mã và học các cách khác nhau để chọn dữ liệu của bạn ngay hôm nay!
Đã cập nhật 5 thg 10, 2026  · 7 phút đọc

Khám phá cùng AI

ChatGPTClaudePerplexity

Để tự mình chạy dễ dàng toàn bộ mã ví dụ trong hướng dẫn này, bạn có thể tạo một sổ tay DataLabmiễn phí có sẵn Python và chứa toàn bộ mẫu mã.

Nếu bạn có một DataFrame và muốn truy cập hoặc chọn một vài hàng/cột cụ thể từ DataFrame đó, bạn có thể dùng dấu ngoặc vuông hoặc các phương pháp nâng cao khác như loc và iloc.

Chọn cột bằng dấu ngoặc vuông

Giả sử bạn muốn chọn cột country từ DataFrame brics. Để thực hiện, bạn gõ brics rồi đến nhãn cột bên trong dấu ngoặc vuông.

Chọn một cột

          country     capital        area    population
BR         Brazil    Brasilia       8.516        200.40
RU         Russia      Moscow      17.100        143.50
IN         India    New Dehli       3.286       1252.00
CH         China      Beijing       9.597       1357.00
SA  South Africa     Pretoria       1.221         52.98
brics["country"]
BR         Brazil
RU         Russia
IN         India
CH         China
SA  South Africa
Name: country, dtype: object

Kiểm tra kiểu của đối tượng

Hãy kiểm tra kiểu của đối tượng được trả về bằng hàm type().

type(brics["country"])
pandas.core.series.Series

Như bạn thấy từ đầu ra trên, đây là một series của pandas! Series có thể được xem như một mảng một chiều có thể gán nhãn, tương tự như DataFrame.

Nếu bạn muốn chọn dữ liệu và giữ nó ở dạng DataFrame, bạn cần dùng dấu ngoặc vuông kép:

brics[["country"]]
BR         Brazil
RU         Russia
IN         India
CH         China
SA  South Africa

Nếu kiểm tra kiểu của kết quả này, đó là một DataFrame! Tuy nhiên chỉ có một cột.

type(brics[["country"]])
pandas.core.frame.DataFrame

Tìm hiểu thuộc tính .shape

Bây giờ hãy xem thuộc tính .shape. Thuộc tính .shape trong pandas cung cấp cách nhanh chóng để xem cấu trúc của DataFrame hoặc Series. Nó trả về một bộ giá trị (tuple) cho biết số hàng và số cột trong DataFrame, hoặc chỉ số hàng trong Series.

Ví dụ: Dùng .shape với DataFrame

Hãy xem lại DataFrame tên là brics:

import pandas as pd

# Sample DataFrame
data = {
    "country": ["Brazil", "Russia", "India", "China", "South Africa"],
    "capital": ["Brasilia", "Moscow", "New Delhi", "Beijing", "Pretoria"],
    "area": [8.516, 17.1, 3.286, 9.597, 1.221],
    "population": [200.4, 143.5, 1252, 1357, 52.98],
}
brics = pd.DataFrame(data, index=["BR", "RU", "IN", "CH", "SA"])

# Check the shape
print(brics.shape)

Đầu ra:

(5, 4)

Điều này cho biết DataFrame brics có 5 hàng và 4 cột.

Ví dụ: Dùng .shape với Series

Khi chọn một cột đơn từ DataFrame, như cột country, kết quả là một Series. Đây là cách .shape hoạt động trong trường hợp đó:

country_series = brics["country"]
print(country_series.shape)

Đầu ra:

(5,)

Ở đây, Series có 5 hàng và không có cột vì Series là cấu trúc một chiều.

Tóm lại: Với DataFrame, .shape trả về một tuple gồm số hàng và số cột. Với Series, nó trả về số hàng. Hãy dùng .shape để nhanh chóng kiểm tra kích thước tập dữ liệu của bạn hoặc xác nhận kết quả lọc và chọn. Ngoài ra, nhớ rằng .shape là một thuộc tính, nên bạn không cần dấu ngoặc để truy cập.

Chọn nhiều cột

Bạn có thể mở rộng lệnh này để chọn hai cột. Hãy thử chọn country và capital.

brics[["country", "capital"]]
          country     capital
BR         Brazil    Brasilia
RU         Russia      Moscow
IN         India    New Dehli
CH         China      Beijing
SA  South Africa     Pretoria

Nếu để ý kỹ, bạn thực chất đang đặt một danh sách các nhãn cột bên trong một cặp ngoặc vuông khác và nhận được một DataFrame con chỉ chứa các cột country và capital.

Chọn hàng bằng dấu ngoặc vuông

Dấu ngoặc vuông có thể làm nhiều hơn chọn cột. Bạn cũng có thể dùng chúng để lấy các hàng, hay các quan sát, từ một DataFrame.

Ví dụ

Bạn chỉ có thể chọn hàng bằng dấu ngoặc vuông nếu chỉ định một lát cắt (slice), như 0:4. Ngoài ra, ở đây bạn đang dùng chỉ mục nguyên của các hàng, không phải nhãn hàng!

Để lấy hàng thứ hai, ba và bốn của DataFrame brics, chúng ta dùng lát cắt từ 1 đến 4. Hãy nhớ rằng điểm cuối của lát cắt là loại trừ, và chỉ mục bắt đầu từ 0.

brics[1:4]
          country     capital     area    population
RU         Russia      Moscow   17.100        143.50
IN         India    New Delhi    3.286       1252.00
CH         China      Beijing    9.597       1357.00

Dấu ngoặc vuông này hoạt động, nhưng chỉ cung cấp chức năng hạn chế. Lý tưởng nhất, chúng ta muốn thứ gì đó tương tự mảng 2D của Numpy, nơi bạn cũng dùng dấu ngoặc vuông. Chỉ mục, hoặc lát cắt, trước dấu phẩy là hàng, và lát cắt sau dấu phẩy là cột.

Ví dụ về mảng 2D Numpy:

my_array[rows, columns]

Nếu muốn làm điều tương tự với pandas, bạn cần dùng các hàm loc và iloc.

  • loc: dựa trên nhãn

  • iloc: dựa trên vị trí chỉ số nguyên

Hàm loc

loc là kỹ thuật để chọn một phần dữ liệu dựa trên nhãn. Hãy xem DataFrame brics và lấy các hàng cho Nga.

Để làm được, bạn đặt nhãn quan tâm trong dấu ngoặc vuông sau loc.

Chọn hàng

brics.loc["RU"]
country     Russia
capital     Moscow
area          17.1
population   143.5
Name: RU, dtype: object

Chúng ta nhận được một series của pandas chứa toàn bộ thông tin hàng; tuy nhiên, bất tiện là nó hiển thị trên các dòng khác nhau. Để nhận một DataFrame, chúng ta phải đặt chuỗi RU vào trong một cặp ngoặc nữa. Bạn cũng có thể chọn nhiều hàng cùng lúc. Giả sử bạn muốn thêm Ấn Độ và Trung Quốc. Chỉ cần thêm những nhãn hàng đó vào danh sách.

brics.loc[["RU", "IN", "CH"]]
          country     capital     area    population
RU         Russia      Moscow   17.100        143.50
IN         India    New Delhi    3.286       1252.00
CH         China      Beijing    9.597       1357.00

Sự khác biệt giữa dùng loc và dấu ngoặc vuông cơ bản là bạn có thể mở rộng lựa chọn bằng một dấu phẩy và chỉ định các cột quan tâm.

Chọn hàng và cột

Hãy mở rộng lệnh trước để chỉ bao gồm các cột country và capital. Chúng ta thêm dấu phẩy và liệt kê các nhãn cột muốn giữ. Phần giao nhau sẽ được trả về.

brics.loc[["RU", "IN", "CH"], ["country", "capital"]]
          country     capital
RU         Russia      Moscow
IN         India    New Delhi
CH         China      Beijing

Bạn cũng có thể dùng loc để chọn tất cả các hàng nhưng chỉ một số cột nhất định. Chỉ cần thay danh sách đầu tiên chỉ định nhãn hàng bằng dấu hai chấm. Một lát cắt từ đầu đến cuối. Lần này, chúng ta nhận lại toàn bộ các hàng nhưng chỉ hai cột.

Chọn tất cả hàng và các cột cụ thể

brics.loc[:, ["country", "capital"]]
          country     capital
BR         Brazil    Brasilia
RU         Russia      Moscow
IN         India    New Delhi
CH         China      Beijing
SA  South Africa     Pretoria

Hàm iloc

Hàm iloc cho phép bạn chia tách (subset) các DataFrame của pandas dựa trên vị trí hoặc chỉ mục của chúng.

Chọn hàng

Hãy dùng cùng dữ liệu và ví dụ tương tự như với loc. Bắt đầu bằng cách lấy hàng cho Nga.

brics.iloc[[1]]
          country     capital     area    population
RU         Russia      Moscow   17.100        143.50

Để lấy các hàng cho Nga, Ấn Độ và Trung Quốc, bạn có thể dùng danh sách chỉ mục 1, 2, 3.

brics.iloc[[1, 2, 3]]
          country     capital     area    population
RU         Russia      Moscow   17.100        143.50
IN         India    New Delhi    3.286       1252.00
CH         China      Beijing    9.597       1357.00

Chọn hàng và cột

Tương tự loc, chúng ta cũng có thể chọn cả hàng và cột bằng iloc. Ở đây, chúng ta sẽ chọn các hàng cho Nga, Ấn Độ và Trung Quốc và các cột country và capital.

brics.iloc[[1, 2, 3], [0, 1]]
          country     capital
RU         Russia      Moscow
IN         India    New Delhi
CH         China      Beijing

Chọn tất cả hàng và các cột cụ thể

Cuối cùng, nếu bạn muốn chọn tất cả các hàng nhưng chỉ giữ các cột country và capital, bạn có thể:

brics.loc[:, [0, 1]]
          country     capital
BR         Brazil    Brasilia
RU         Russia      Moscow
IN         India    New Delhi
CH         China      Beijing
SA  South Africa     Pretoria

Các hàm loc và iloc khá giống nhau. Điểm khác nhau chỉ là cách bạn tham chiếu đến các cột và hàng.

Ví dụ tương tác về chọn một tập con dữ liệu

Trong ví dụ sau, dữ liệu cars được nhập từ các tệp CSV dưới dạng một Pandas DataFrame. Để chỉ chọn cars_per_cap column từ cars, bạn có thể dùng:

cars['cars_per_cap']
cars[['cars_per_cap']]

Phiên bản một ngoặc vuông trả về một Pandas Series; phiên bản ngoặc kép trả về một Pandas DataFrame.

  • Bạn sẽ dùng một cặp ngoặc vuông để in cột country của cars dưới dạng Pandas Series.
  • Sau đó dùng một cặp ngoặc vuông kép để in cột country của cars dưới dạng Pandas DataFrame.
  • Cuối cùng, dùng ngoặc vuông kép để in ra một DataFrame với cả hai cột country và drives_right của cars, theo thứ tự này.
# Import cars data
import pandas as pd
cars = pd.read_csv('cars.csv', index_col = 0)

# Print out country column as Pandas Series
print(cars['country'])

# Print out country column as Pandas DataFrame
print(cars[['country']])

# Print out DataFrame with country and drives_right columns
print(cars[['country', 'drives_right']])

Khi chạy đoạn mã trên, ta thu được kết quả sau:

US     United States
AUS        Australia
JPN            Japan
IN             India
RU            Russia
MOR          Morocco
EG             Egypt
Name: country, dtype: object
           country
US   United States
AUS      Australia
JPN          Japan
IN           India
RU          Russia
MOR        Morocco
EG           Egypt
           country  drives_right
US   United States          True
AUS      Australia         False
JPN          Japan         False
IN           India         False
RU          Russia          True
MOR        Morocco          True
EG           Egypt          True

Tự thực hành.

Để tìm hiểu thêm về pandas, vui lòng xem video từ khóa học Intermediate Python của chúng tôi.

Nội dung này được trích từ khóa học Intermediate Python của DataCamp do Hugo Bowne-Anderson biên soạn.

Chủ đề
Python
Phân tích dữ liệu
Năng lực Dữ liệu

Khóa học Python

Khóa học

Python nâng cao

4 giờ
1.4M
Nâng cao kỹ năng Khoa học dữ liệu của bạn bằng cách tạo trực quan hóa với Matplotlib và thao tác DataFrame bằng pandas.
Xem chi tiếtRight Arrow
Bắt Đầu Khóa Học
Xem thêmRight Arrow
Liên quan

blog

Claude Opus 4.6: Tính năng, Điểm chuẩn, Bài kiểm tra thực hành và hơn thế nữa

Mô hình mới nhất của Anthropic dẫn đầu ở mã hóa tác tử và lập luận phức tạp. Thêm vào đó, nó có cửa sổ ngữ cảnh 1M.
Matt Crabtree's photo

Matt Crabtree

10 phút

Xem ThêmXem Thêm