Skip to content

Commit 20ae0ed

Browse files
committed
BUG: should not pass empty list to from_tuples in diff
1 parent 1b30cfc commit 20ae0ed

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

pandas/core/index.py

+8-2
Original file line numberDiff line numberDiff line change
@@ -1539,8 +1539,14 @@ def diff(self, other):
15391539
names=result_names)
15401540

15411541
difference = sorted(set(self.values) - set(other.values))
1542-
return MultiIndex.from_tuples(difference, sortorder=0,
1543-
names=result_names)
1542+
1543+
if not difference:
1544+
return MultiIndex(levels=[[]]*self.nlevels,
1545+
labels=[[]]*self.nlevels,
1546+
names=result_names)
1547+
else:
1548+
return MultiIndex.from_tuples(difference, sortorder=0,
1549+
names=result_names)
15441550

15451551
def _assert_can_do_setop(self, other):
15461552
if not isinstance(other, MultiIndex):

pandas/tests/test_index.py

+4
Original file line numberDiff line numberDiff line change
@@ -918,6 +918,10 @@ def test_diff(self):
918918
result = first - chunklet
919919
self.assertEqual(result.names, [None, None])
920920

921+
# empty, but non-equal
922+
result = self.index - self.index.sortlevel(1)[0]
923+
self.assert_(len(result) == 0)
924+
921925
def test_argsort(self):
922926
result = self.index.argsort()
923927
expected = self.index.get_tuple_index().argsort()

0 commit comments

Comments
 (0)