File tree 2 files changed +13
-2
lines changed
2 files changed +13
-2
lines changed Original file line number Diff line number Diff line change @@ -1531,12 +1531,16 @@ def diff(self, other):
1531
1531
"""
1532
1532
self ._assert_can_do_setop (other )
1533
1533
1534
+ result_names = self .names if self .names == other .names else None
1535
+
1534
1536
if self .equals (other ):
1535
- return self [:0 ]
1537
+ return MultiIndex (levels = [[]]* self .nlevels ,
1538
+ labels = [[]]* self .nlevels ,
1539
+ names = result_names )
1536
1540
1537
1541
difference = sorted (set (self .values ) - set (other .values ))
1538
1542
return MultiIndex .from_tuples (difference , sortorder = 0 ,
1539
- names = self . names )
1543
+ names = result_names )
1540
1544
1541
1545
def _assert_can_do_setop (self , other ):
1542
1546
if not isinstance (other , MultiIndex ):
Original file line number Diff line number Diff line change @@ -907,10 +907,17 @@ def test_diff(self):
907
907
self .assert_ (result .equals (expected ))
908
908
self .assertEqual (result .names , self .index .names )
909
909
910
+ # empty difference
910
911
result = first - first
911
912
expected = first [:0 ]
912
913
self .assert_ (result .equals (expected ))
913
914
915
+ # names not the same
916
+ chunklet = self .index [- 3 :]
917
+ chunklet .names = ['foo' , 'baz' ]
918
+ result = first - chunklet
919
+ self .assertEqual (result .names , [None , None ])
920
+
914
921
def test_argsort (self ):
915
922
result = self .index .argsort ()
916
923
expected = self .index .get_tuple_index ().argsort ()
You can’t perform that action at this time.
0 commit comments