Chọn các hàng DataFrame dựa trên các giá trị cột trong Python

Chọn các hàng DataFrame dựa trên các giá trị cột trong Python
Python

Sử dụng Pandas để lọc DataFrames theo giá trị cột

Khi làm việc với dữ liệu bằng Python, thư viện Pandas cung cấp các công cụ mạnh mẽ để thao tác và phân tích dữ liệu. Một tác vụ phổ biến là chọn các hàng từ DataFrame dựa trên các giá trị trong một cột cụ thể. Thao tác này gần giống với truy vấn SQL: SELECT * FROM table WHERE cột_name = some_value.

Trong bài viết này, chúng ta sẽ khám phá cách đạt được điều này trong Pandas bằng nhiều phương pháp khác nhau. Cho dù bạn đang lọc theo một giá trị hay nhiều tiêu chí, Pandas đều cung cấp các cách trực quan và hiệu quả để xử lý các hoạt động đó. Hãy đi sâu vào chi tiết.

Yêu cầu Sự miêu tả
pd.DataFrame() Tạo đối tượng DataFrame từ từ điển hoặc cấu trúc dữ liệu khác.
df[condition] Lọc các hàng DataFrame dựa trên một điều kiện, chỉ trả về những hàng đáp ứng tiêu chí.
print() Xuất thông báo hoặc DataFrame được chỉ định tới bảng điều khiển.
df['column'] == value Tạo một Chuỗi boolean dùng để lọc các hàng trong đó cột khớp với giá trị đã chỉ định.
df['column'] >df['column'] > value Tạo một Chuỗi boolean được sử dụng để lọc các hàng trong đó giá trị cột lớn hơn giá trị được chỉ định.
# Comment Được sử dụng để thêm giải thích hoặc ghi chú trong mã, những phần này không được thực thi như một phần của tập lệnh.

Triển khai lựa chọn hàng DataFrame trong Pandas

Trong các tập lệnh được cung cấp, nhiệm vụ chính là lọc các hàng từ DataFrame dựa trên các giá trị cột cụ thể, một yêu cầu chung trong phân tích dữ liệu. Tập lệnh đầu tiên bắt đầu bằng cách nhập thư viện Pandas với import pandas as pd. Điều này rất cần thiết vì Pandas là thư viện thao tác dữ liệu mạnh mẽ trong Python. Tiếp theo, chúng tôi tạo một DataFrame mẫu bằng cách sử dụng pd.DataFrame() với một từ điển chứa dữ liệu về tên, độ tuổi và thành phố. Cấu trúc này cho phép chúng ta dễ dàng hình dung và thao tác với dữ liệu dạng bảng. Phần quan trọng của tập lệnh là nơi chúng tôi lọc các hàng bằng cách sử dụng df[df['city'] == 'New York']. Lệnh này chọn tất cả các hàng có giá trị của cột thành phố là 'New York'. Kết quả được lưu trữ trong biến ny_rows, sau đó được in để hiển thị DataFrame đã lọc.

Tập lệnh thứ hai có cấu trúc tương tự nhưng tập trung vào việc lọc các hàng dựa trên điều kiện số. Sau khi nhập Pandas và tạo DataFrame với các cột sản phẩm, giá và số lượng, tập lệnh sẽ sử dụng df[df['price'] > 150] để lọc các hàng có giá lớn hơn 150. Lệnh này tạo ra một tập hợp con của DataFrame gốc chỉ chứa các hàng đáp ứng điều kiện đã chỉ định. Kết quả được lưu trữ trong expensive_products và in ra để xác minh. Cả hai tập lệnh đều thể hiện sức mạnh và sự đơn giản của Pandas trong thao tác dữ liệu. Bằng cách sử dụng lập chỉ mục boolean, một phương pháp trong đó chúng tôi chuyển một loạt giá trị đúng/sai để lọc dữ liệu, chúng tôi có thể chọn các tập hợp con dữ liệu dựa trên các điều kiện khác nhau một cách hiệu quả, khiến nó trở thành một công cụ vô giá cho các nhà phân tích và nhà khoa học dữ liệu.

Lọc các hàng trong DataFrame dựa trên giá trị cột

Python - Sử dụng Pandas cho hoạt động DataFrame

import pandas as pd
# Create a sample DataFrame
data = {
    'name': ['Alice', 'Bob', 'Charlie', 'David', 'Edward'],
    'age': [24, 27, 22, 32, 29],
    'city': ['New York', 'Los Angeles', 'New York', 'Chicago', 'Los Angeles']
}
df = pd.DataFrame(data)

# Select rows where city is New York
ny_rows = df[df['city'] == 'New York']
print(ny_rows)

# Output:
#       name  age      city
# 0    Alice   24  New York
# 2  Charlie   22  New York

Truy vấn các hàng DataFrame dựa trên giá trị cột

Python - Lọc nâng cao với Pandas

import pandas as pd

# Create a sample DataFrame
data = {
    'product': ['A', 'B', 'C', 'D'],
    'price': [100, 150, 200, 250],
    'quantity': [30, 50, 20, 40]
}
df = pd.DataFrame(data)

# Select rows where price is greater than 150
expensive_products = df[df['price'] > 150]
print(expensive_products)

# Output:
#   product  price  quantity
# 2       C    200        20
# 3       D    250        40

Kỹ thuật nâng cao để chọn hàng DataFrame

Ngoài tính năng lọc cơ bản với lập chỉ mục boolean, Pandas còn cung cấp các kỹ thuật nâng cao hơn để chọn hàng dựa trên giá trị cột. Một phương pháp như vậy là query() cho phép bạn sử dụng cú pháp giống SQL để lọc các hàng DataFrame. Ví dụ, bạn có thể sử dụng df.query('age > 25 and city == "New York"') để chọn các hàng có độ tuổi lớn hơn 25 và thành phố là New York. Phương pháp này có thể làm cho mã của bạn dễ đọc hơn, đặc biệt đối với các điều kiện phức tạp. Ngoài ra, Pandas còn cung cấp số 8iloc[] các bộ truy cập để lựa chọn hàng chính xác hơn. Các số 8 Trình truy cập dựa trên nhãn, nghĩa là bạn có thể lọc các hàng theo nhãn của chúng hoặc theo mảng boolean. Ngược lại, iloc[] trình truy cập dựa trên vị trí số nguyên, cho phép bạn lọc các hàng theo vị trí chỉ mục của chúng.

Một tính năng mạnh mẽ khác trong Pandas là khả năng lọc các hàng DataFrame bằng cách sử dụng isin() phương pháp. Phương pháp này hữu ích khi bạn cần lọc các hàng dựa trên danh sách các giá trị. Ví dụ, df[df['city'].isin(['New York', 'Los Angeles'])] chọn các hàng trong đó giá trị cột thành phố là New York hoặc Los Angeles. Hơn nữa, bạn có thể xâu chuỗi nhiều điều kiện bằng cách sử dụng &| toán tử để tạo ra các bộ lọc phức tạp hơn. Ví dụ, df[(df['age'] > 25) & (df['city'] == 'New York')] lọc các hàng có độ tuổi lớn hơn 25 và thành phố là New York. Những kỹ thuật nâng cao này cung cấp một khuôn khổ mạnh mẽ để lọc dữ liệu, biến Pandas trở thành một công cụ linh hoạt để phân tích và thao tác dữ liệu.

Các câu hỏi thường gặp về việc chọn hàng DataFrame trong Pandas

  1. Làm cách nào để lọc các hàng trong DataFrame dựa trên nhiều giá trị cột?
  2. Bạn có thể sử dụng lập chỉ mục boolean với nhiều điều kiện được kết hợp bằng cách sử dụng &|. Ví dụ: df[(df['age'] > 25) & (df['city'] == 'New York')].
  3. Sự khác biệt giữa số 8iloc[]?
  4. số 8 dựa trên nhãn, trong khi iloc[] dựa trên vị trí số nguyên. Sử dụng số 8 để lọc theo nhãn và iloc[] để lọc theo vị trí chỉ mục.
  5. Làm cách nào tôi có thể sử dụng query() chức năng lọc các hàng DataFrame?
  6. Các query() cho phép bạn sử dụng cú pháp giống SQL. Ví dụ: df.query('age > 25 and city == "New York"').
  7. Tôi có thể lọc các hàng dựa trên danh sách giá trị không?
  8. Có, bạn có thể sử dụng isin() phương pháp. Ví dụ: df[df['city'].isin(['New York', 'Los Angeles'])].
  9. Cách tốt nhất để lọc các hàng dựa trên kết hợp chuỗi là gì?
  10. Bạn có thể dùng str.contains() phương pháp. Ví dụ: df[df['city'].str.contains('New')].
  11. Làm cách nào để chọn các hàng bị thiếu giá trị cột?
  12. Bạn có thể dùng isna() phương pháp. Ví dụ: df[df['age'].isna()].
  13. Làm cách nào tôi có thể lọc các hàng bằng chức năng tùy chỉnh?
  14. Bạn có thể dùng apply() phương thức có hàm lambda. Ví dụ: df[df.apply(lambda row: row['age'] > 25, axis=1)].
  15. Tôi có thể lọc các hàng dựa trên giá trị chỉ mục không?
  16. Có, bạn có thể sử dụng index.isin() phương pháp. Ví dụ: df[df.index.isin([1, 3, 5])].

Những điểm chính rút ra cho việc lựa chọn hàng DataFrame

Chọn các hàng từ DataFrame dựa trên các giá trị cột là một kỹ năng cơ bản trong phân tích dữ liệu với Pandas. Sử dụng lập chỉ mục boolean, số 8, iloc[], query(), Và isin() phương pháp cho phép lọc dữ liệu hiệu quả. Nắm vững các kỹ thuật này sẽ nâng cao khả năng thao tác và phân tích tập dữ liệu một cách hiệu quả.