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

Thực hiện phép logic Boolean AND, OR, XOR trên Series Python pandas

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 NaN trong 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.