Giả sử bạn muốn thực hiện các phép toán logic bitwise (AND, OR, XOR) giữa Series boolean và giá trị True.
Giải pháp
- Tạo Series boolean có chứa NaN:
pd.Series([True, np.nan, False], dtype='bool'). - Áp dụng toán tử bitwise:
& True,| True,^ True.
Mã ví dụ
import pandas as pd
import numpy as np
s = pd.Series([True, np.nan, False], dtype='bool')
print("Series gốc:\n", s)
print("\nAND với True:\n", s & True)
print("\nOR với True:\n", s | True)
print("\nXOR với True:\n", s ^ True)
Kết quả
Series gốc: 0 True 1 True # NaN trong bool -> True (pandas behavior) 2 False dtype: bool AND với True: 0 True 1 True 2 False dtype: bool OR với True: 0 True 1 True 2 True dtype: bool XOR với True: 0 False 1 False 2 True dtype: bool
Giải thích quan trọng:
- Pandas coi
NaNtrong dtype bool làTrue(khác với Python thuần:bool(np.nan) == True). - AND (&): True & True = True, True & False = False.
- OR (|): True | False = True.
- XOR (^): True ^ True = False, False ^ True = True.
- Toán tử bitwise trên Series làm việc element-wise.