Skip to content

Commit eb34150

Browse files
committed
Fix.
1 parent 04e5198 commit eb34150

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

databricks/koalas/frame.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6774,7 +6774,10 @@ def melt(self, id_vars=None, value_vars=None, var_name=None,
67746774
elif isinstance(id_vars, str):
67756775
id_vars = [(id_vars,)]
67766776
elif isinstance(id_vars, tuple):
6777-
id_vars = [id_vars]
6777+
if self._internal.column_index_level == 1:
6778+
id_vars = [idv if isinstance(idv, tuple) else (idv,) for idv in id_vars]
6779+
else:
6780+
raise ValueError('id_vars must be a list of tuples when columns are a MultiIndex')
67786781
else:
67796782
id_vars = [idv if isinstance(idv, tuple) else (idv,) for idv in id_vars]
67806783

databricks/koalas/tests/test_dataframe.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1770,6 +1770,9 @@ def test_melt(self):
17701770
self.assert_eq(kdf.melt(id_vars=['A', 'B']).sort_values(['variable', 'value'])
17711771
.reset_index(drop=True),
17721772
pdf.melt(id_vars=['A', 'B']).sort_values(['variable', 'value']))
1773+
self.assert_eq(kdf.melt(id_vars=('A', 'B')).sort_values(['variable', 'value'])
1774+
.reset_index(drop=True),
1775+
pdf.melt(id_vars=('A', 'B')).sort_values(['variable', 'value']))
17731776
self.assert_eq(kdf.melt(id_vars=['A'], value_vars=['C']).sort_values(['variable', 'value'])
17741777
.reset_index(drop=True),
17751778
pdf.melt(id_vars=['A'], value_vars=['C']).sort_values(['variable', 'value']))
@@ -1811,6 +1814,8 @@ def test_melt(self):
18111814
.reset_index(drop=True),
18121815
pdf.melt().sort_values(['v0', 'v1', 'value']))
18131816

1817+
self.assertRaises(ValueError, lambda: kdf.melt(id_vars=('X', 'A')))
1818+
18141819
def test_all(self):
18151820
pdf = pd.DataFrame({
18161821
'col1': [False, False, False],

0 commit comments

Comments
 (0)