@@ -250,12 +250,20 @@ def test_scalar_na_logical_ops_corners(self):
250
250
251
251
with pytest .raises (TypeError ):
252
252
d .__and__ (s , axis = "columns" )
253
+ with pytest .raises (TypeError ):
254
+ d .__and__ (s , axis = 1 )
253
255
254
256
with pytest .raises (TypeError ):
255
257
s & d
258
+ with pytest .raises (TypeError ):
259
+ d & s
260
+
261
+ expected = (s & s ).to_frame ("A" )
262
+ result = d .__and__ (s , axis = "index" )
263
+ tm .assert_frame_equal (result , expected )
256
264
257
- # this is wrong as its not a boolean result
258
- # result = d.__and__(s,axis='index' )
265
+ result = d . __and__ ( s , axis = 0 )
266
+ tm . assert_frame_equal ( result , expected )
259
267
260
268
@pytest .mark .parametrize ("op" , [operator .and_ , operator .or_ , operator .xor ])
261
269
def test_logical_ops_with_index (self , op ):
@@ -436,20 +444,19 @@ def test_logical_ops_df_compat(self):
436
444
assert_series_equal (s2 & s1 , exp )
437
445
438
446
# True | np.nan => True
439
- exp = pd .Series ([True , True , True , False ], index = list ("ABCD" ), name = "x" )
440
- assert_series_equal (s1 | s2 , exp )
447
+ exp_or1 = pd .Series ([True , True , True , False ], index = list ("ABCD" ), name = "x" )
448
+ assert_series_equal (s1 | s2 , exp_or1 )
441
449
# np.nan | True => np.nan, filled with False
442
- exp = pd .Series ([True , True , False , False ], index = list ("ABCD" ), name = "x" )
443
- assert_series_equal (s2 | s1 , exp )
450
+ exp_or = pd .Series ([True , True , False , False ], index = list ("ABCD" ), name = "x" )
451
+ assert_series_equal (s2 | s1 , exp_or )
444
452
445
453
# DataFrame doesn't fill nan with False
446
- exp = pd .DataFrame ({"x" : [True , False , np .nan , np .nan ]}, index = list ("ABCD" ))
447
- assert_frame_equal (s1 .to_frame () & s2 .to_frame (), exp )
448
- assert_frame_equal (s2 .to_frame () & s1 .to_frame (), exp )
454
+ assert_frame_equal (s1 .to_frame () & s2 .to_frame (), exp .to_frame ())
455
+ assert_frame_equal (s2 .to_frame () & s1 .to_frame (), exp .to_frame ())
449
456
450
457
exp = pd .DataFrame ({"x" : [True , True , np .nan , np .nan ]}, index = list ("ABCD" ))
451
- assert_frame_equal (s1 .to_frame () | s2 .to_frame (), exp )
452
- assert_frame_equal (s2 .to_frame () | s1 .to_frame (), exp )
458
+ assert_frame_equal (s1 .to_frame () | s2 .to_frame (), exp_or1 . to_frame () )
459
+ assert_frame_equal (s2 .to_frame () | s1 .to_frame (), exp_or . to_frame () )
453
460
454
461
# different length
455
462
s3 = pd .Series ([True , False , True ], index = list ("ABC" ), name = "x" )
@@ -460,19 +467,17 @@ def test_logical_ops_df_compat(self):
460
467
assert_series_equal (s4 & s3 , exp )
461
468
462
469
# np.nan | True => np.nan, filled with False
463
- exp = pd .Series ([True , True , True , False ], index = list ("ABCD" ), name = "x" )
464
- assert_series_equal (s3 | s4 , exp )
470
+ exp_or1 = pd .Series ([True , True , True , False ], index = list ("ABCD" ), name = "x" )
471
+ assert_series_equal (s3 | s4 , exp_or1 )
465
472
# True | np.nan => True
466
- exp = pd .Series ([True , True , True , True ], index = list ("ABCD" ), name = "x" )
467
- assert_series_equal (s4 | s3 , exp )
473
+ exp_or = pd .Series ([True , True , True , True ], index = list ("ABCD" ), name = "x" )
474
+ assert_series_equal (s4 | s3 , exp_or )
468
475
469
- exp = pd .DataFrame ({"x" : [True , False , True , np .nan ]}, index = list ("ABCD" ))
470
- assert_frame_equal (s3 .to_frame () & s4 .to_frame (), exp )
471
- assert_frame_equal (s4 .to_frame () & s3 .to_frame (), exp )
476
+ assert_frame_equal (s3 .to_frame () & s4 .to_frame (), exp .to_frame ())
477
+ assert_frame_equal (s4 .to_frame () & s3 .to_frame (), exp .to_frame ())
472
478
473
- exp = pd .DataFrame ({"x" : [True , True , True , np .nan ]}, index = list ("ABCD" ))
474
- assert_frame_equal (s3 .to_frame () | s4 .to_frame (), exp )
475
- assert_frame_equal (s4 .to_frame () | s3 .to_frame (), exp )
479
+ assert_frame_equal (s3 .to_frame () | s4 .to_frame (), exp_or1 .to_frame ())
480
+ assert_frame_equal (s4 .to_frame () | s3 .to_frame (), exp_or .to_frame ())
476
481
477
482
478
483
class TestSeriesComparisons :
0 commit comments