Lọc hàng trong Pandas DataFrames
Pandas là một thư viện mạnh mẽ trong Python để 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ị cột, tương tự như bảng SELECT * FROM của SQL WHERE cột_name = some_value.
Hướng dẫn này sẽ hướng dẫn bạn các phương pháp khác nhau để đạt được điều này trong Pandas, giúp bạn dễ dàng lọc dữ liệu một cách hiệu quả. Cho dù bạn là người mới bắt đầu hay người dùng có kinh nghiệm, những mẹo này sẽ nâng cao kỹ năng xử lý dữ liệu của bạn.
Yêu cầu | Sự miêu tả |
---|---|
pd.DataFrame(data) | Tạo DataFrame từ từ điển dữ liệu. |
df[column_name] | Truy cập một cột trong DataFrame theo tên. |
df[condition] | Lọc DataFrame dựa trên điều kiện áp dụng cho một cột. |
print(selected_rows) | In DataFrame hoặc một tập hợp con của nó ra bảng điều khiển. |
df[df['Age'] >df[df['Age'] > 25] | Chọn các hàng có giá trị cột 'Tuổi' lớn hơn 25. |
df[df['City'] == 'Chicago'] | Chọn các hàng trong đó giá trị cột 'Thành phố' bằng 'Chicago'. |
Tìm hiểu về lựa chọn hàng DataFrame trong Pandas
Các tập lệnh được cung cấp minh họa cách chọn các hàng từ DataFrame dựa trên các giá trị cột bằng thư viện Pandas trong Python. 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 yêu cầu. Sau đó, nó tạo một DataFrame mẫu bằng cách sử dụng từ điển dữ liệu, được chuyển đổi thành DataFrame với pd.DataFrame(data) yêu cầu. Sau đó, tập lệnh minh họa hai phương pháp chọn hàng: chọn các hàng có giá trị cột 'Tuổi' lớn hơn 25 bằng cách sử dụng df[df['Age'] > 25]và chọn các hàng có giá trị cột 'Thành phố' là 'Chicago' bằng cách sử dụng df[df['City'] == 'Chicago']. Các DataFrames đã lọc này được in bằng cách sử dụng print() chức năng hiển thị các hàng đã chọn.
Kịch bản thứ hai có cấu trúc tương tự nhưng sử dụng dữ liệu và tiêu chí lựa chọn khác. Nó tạo một DataFrame với thông tin sản phẩm, bao gồm các cột 'Sản phẩm', 'Giá' và 'Kho hàng'. Các hàng được chọn trong đó 'Giá' nhỏ hơn hoặc bằng 200 với df[df['Price'] <= 200]và trong đó 'Stock' lớn hơn 40 bằng cách sử dụng df[df['Stock'] > 40]. Mục đích của các tập lệnh này là hiển thị cách lọc các hàng DataFrame dựa trên các điều kiện cụ thể, tương tự như cách bạn sử dụng truy vấn SQL để chọn các hàng từ bảng dựa trên giá trị cột. Bằng cách hiểu và áp dụng các lệnh này, bạn có thể thao tác và phân tích dữ liệu trong DataFrames một cách hiệu quả.
Chọn hàng trong DataFrame bằng giá trị cột trong Pandas
Python với thư viện Pandas
# Importing the necessary library
import pandas as pd
# Creating a sample DataFrame
data = {
'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
'Age': [24, 27, 22, 32, 29],
'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix']
}
df = pd.DataFrame(data)
# Selecting rows where Age is greater than 25
selected_rows = df[df['Age'] > 25]
print(selected_rows)
# Selecting rows where City is 'Chicago'
chicago_rows = df[df['City'] == 'Chicago']
print(chicago_rows)
Lọc dữ liệu trong DataFrame dựa trên tiêu chí cột
Python với thư viện Pandas
# Importing pandas library
import pandas as pd
# Creating a sample DataFrame
data = {'Product': ['A', 'B', 'C', 'D', 'E'],
'Price': [100, 150, 200, 250, 300],
'Stock': [30, 60, 90, 20, 50]}
df = pd.DataFrame(data)
# Selecting rows where Price is less than or equal to 200
affordable_products = df[df['Price'] <= 200]
print(affordable_products)
# Selecting rows where Stock is more than 40
in_stock = df[df['Stock'] > 40]
print(in_stock)
Kỹ thuật nâng cao để chọn hàng DataFrame trong Pandas
Bên cạnh việc lọc cơ bản bằng cách sử dụng lập chỉ mục boolean, Pandas còn cung cấp các kỹ thuật nâng cao để chọn hàng dựa trên giá trị cột. Một phương pháp mạnh mẽ là sử dụng query() cho phép bạn lọc các hàng có biểu thức truy vấn, làm cho cú pháp rõ ràng hơn và thường trực quan hơn. Ví dụ, thay vì sử dụng df[df['Age'] > 25], bạn có thể viết df.query('Age > 25'). Phương pháp này đặc biệt hữu ích khi xử lý các điều kiện phức tạp hơn hoặc khi tên cột chứa khoảng trắng. Ngoài ra, isin() Hàm này có lợi khi bạn muốn lọc các hàng dựa trên danh sách các giá trị. Ví dụ: để chọn các hàng có giá trị cột 'Thành phố' là 'Chicago' hoặc 'New York', bạn có thể sử dụng df[df['City'].isin(['Chicago', 'New York'])].
Một kỹ thuật khác bao gồm việc loc Và iloc người lập chỉ mục. Các loc bộ chỉ mục dựa trên nhãn, cho phép bạn chọn các hàng dựa trên nhãn hàng và tên cột, trong khi iloc dựa trên vị trí số nguyên, cho phép lựa chọn theo số hàng và số cột. Tính linh hoạt này đặc biệt hữu ích khi chọn các hàng dựa trên điều kiện áp dụng cho một cột khác. Ví dụ, df.loc[df['Age'] > 25, 'Name'] sẽ trả về tên của những cá nhân lớn hơn 25. Các phương pháp này mở rộng bộ công cụ của bạn để xử lý và phân tích dữ liệu trong Pandas một cách hiệu quả, cung cấp mã dễ đọc và dễ bảo trì hơn.
Các câu hỏi và câu trả lời thường gặp về việc chọn hàng DataFrame
- Làm cách nào tôi có thể chọn các hàng dựa trên nhiều điều kiện?
- Bạn có thể dùng query() hoặc kết hợp các điều kiện với các toán tử logic như & Và |. Ví dụ, df[(df['Age'] > 25) & (df['City'] == 'Chicago')].
- Tôi có thể lọc các hàng dựa trên danh sách giá trị không?
- Có, hãy sử dụng isin() chức năng. Ví dụ, df[df['City'].isin(['Chicago', 'New York'])].
- Sự khác biệt giữa loc Và iloc?
- loc dựa trên nhãn, trong khi iloc dựa trên vị trí số nguyên. Sử dụng loc với nhãn hàng/cột và iloc với chỉ số hàng/cột.
- Làm cách nào tôi có thể chọn các cột cụ thể trong khi lọc hàng?
- Bạn có thể dùng loc. Ví dụ, df.loc[df['Age'] > 25, ['Name', 'City']].
- Làm cách nào để xử lý các giá trị bị thiếu khi chọn hàng?
- Sử dụng dropna() chức năng xóa các hàng có giá trị bị thiếu hoặc fillna() để thay thế chúng bằng một giá trị xác định.
- Tôi có thể sử dụng biểu thức chính quy để lọc hàng không?
- Vâng str.contains() hoạt động với regex=True tham số cho phép bạn lọc các hàng dựa trên mẫu biểu thức chính quy. Ví dụ, df[df['Name'].str.contains('^A', regex=True)].
- Làm cách nào để lọc các hàng dựa trên chỉ mục?
- Bạn có thể dùng loc với tên chỉ mục. Ví dụ, df.loc[df.index == 'some_index'].
- Điều gì sẽ xảy ra nếu tên cột của tôi chứa dấu cách hoặc ký tự đặc biệt?
- Sử dụng query() hàm có thể xử lý các tên cột như vậy bằng dấu backticks. Ví dụ, df.query('`column name` == value').
Suy nghĩ cuối cùng về kỹ thuật chọn hàng DataFrame
Chọn các hàng từ DataFrame dựa trên các giá trị cột trong Pandas là một kỹ năng quan trọng để thao tác dữ liệu. Các phương pháp khác nhau được thảo luận, bao gồm lập chỉ mục boolean, query(), isin()và lập chỉ mục dựa trên nhãn và dựa trên vị trí số nguyên với loc Và iloc, cung cấp các công cụ mạnh mẽ để lọc dữ liệu hiệu quả. Việc thành thạo các kỹ thuật này cho phép phân tích dữ liệu tốt hơn và mã sạch hơn, dễ bảo trì hơn.