Closed
Description
The same as #13806, but for discuss differences with DataFrame
.
pd.Series([True, False, np.nan]) | pd.Series([True, False, True])
#0 True
#1 False
#2 False
# dtype: bool
pd.Series([True, False, True]) | pd.Series([True, False, np.nan])
#0 True
#1 False
#2 True
# dtype: bool
pd.DataFrame([True, False, np.nan]) | pd.DataFrame([True, False, True])
# 0
#0 True
#1 False
#2 NaN
pd.DataFrame([True, False, True]) | pd.DataFrame([True, False, np.nan])
# 0
#0 True
#1 False
#2 NaN
There looks to be 2 points:
1. NaN
comparison result
As @TomAugspurger described in #13806, the basic rule is below. Based on this, DataFrame
result is incorrect.
In [40]: float('nan') or 1
Out[40]: nan
In [41]: 1 or float('nan')
Out[41]: 1
2. filling NaN
result
Series
fills NaN
included in the result with False
. DataFrame
should also?