Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chỉ mục Boolean (Boolean Indexing) trong Python pandas


Các giá trị Boolean như True, False và 1, 0 có thể dùng làm chỉ mục (index) trong pandas DataFrame. Chúng giúp lọc các bản ghi cần thiết. Dưới đây chúng ta sẽ thấy các phương pháp thực hiện Boolean indexing.

Tạo chỉ mục Boolean

Xét một DataFrame mô tả dữ liệu trò chơi. Các điểm số trong ngày khác nhau được lưu trong dictionary. Sau đó ta tạo chỉ mục cho DataFrame dùng True/False làm giá trị index. Rồi in DataFrame ra.

Ví dụ

import pandas as pd

# dictionary
game = {'Day': ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
        'points': [31, 24, 16, 11, 22]}
df = pd.DataFrame(game, index=[True, False, True, False, True])
print(df)

Kết quả

       Day  points
True    Monday     31
False   Tuesday    24
True    Wednesday  16
False   Thursday   11
True    Friday     22

Sử dụng .loc[]

Hàm này lọc bản ghi có giá trị Boolean cụ thể. Ví dụ dưới lấy các bản ghi có index là True.

Ví dụ

import pandas as pd

game = {'Day': ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
        'points': [31, 24, 16, 11, 22]}
df = pd.DataFrame(game, index=[True, False, True, False, True])
print(df.loc[True])

Kết quả

       Day  points
True    Monday     31
True    Wednesday  16
True    Friday     22

Sử dụng .ix[] (lưu ý: .ix[] đã bị loại bỏ từ pandas 0.20+)

Phương pháp này cũng dùng số nguyên như giá trị Boolean. Ta đổi True/False thành 1/0 trong DataFrame, rồi dùng để lọc.

Ví dụ

import pandas as pd

game = {'Day': ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
        'points': [31, 24, 16, 11, 22]}
df = pd.DataFrame(game, index=[1, 1, 0, 0, 1])
print(df.loc[0])  # dùng .loc[] thay vì .ix[] đã deprecated

Kết quả

       Day  points
0    Wednesday  16
0    Thursday   11