6
6
from pandas import compat
7
7
from pandas .core .categorical import Categorical
8
8
9
- from pandas .core .frame import DataFrame
10
- from pandas .core .index import MultiIndex
9
+ from pandas .core .dtypes .generic import ABCMultiIndex
11
10
12
11
from pandas .core .frame import _shared_docs
13
12
from pandas .util ._decorators import Appender
14
13
15
14
import re
16
- import pandas .core .dtypes .concat as _concat
17
15
from pandas .core .dtypes .missing import notna
18
16
19
17
@@ -27,7 +25,7 @@ def melt(frame, id_vars=None, value_vars=None, var_name=None,
27
25
if id_vars is not None :
28
26
if not is_list_like (id_vars ):
29
27
id_vars = [id_vars ]
30
- elif (isinstance (frame .columns , MultiIndex ) and
28
+ elif (isinstance (frame .columns , ABCMultiIndex ) and
31
29
not isinstance (id_vars , list )):
32
30
raise ValueError ('id_vars must be a list of tuples when columns'
33
31
' are a MultiIndex' )
@@ -39,7 +37,7 @@ def melt(frame, id_vars=None, value_vars=None, var_name=None,
39
37
if value_vars is not None :
40
38
if not is_list_like (value_vars ):
41
39
value_vars = [value_vars ]
42
- elif (isinstance (frame .columns , MultiIndex ) and
40
+ elif (isinstance (frame .columns , ABCMultiIndex ) and
43
41
not isinstance (value_vars , list )):
44
42
raise ValueError ('value_vars must be a list of tuples when'
45
43
' columns are a MultiIndex' )
@@ -54,7 +52,7 @@ def melt(frame, id_vars=None, value_vars=None, var_name=None,
54
52
frame .columns = frame .columns .get_level_values (col_level )
55
53
56
54
if var_name is None :
57
- if isinstance (frame .columns , MultiIndex ):
55
+ if isinstance (frame .columns , ABCMultiIndex ):
58
56
if len (frame .columns .names ) == len (set (frame .columns .names )):
59
57
var_name = frame .columns .names
60
58
else :
@@ -81,6 +79,7 @@ def melt(frame, id_vars=None, value_vars=None, var_name=None,
81
79
mdata [col ] = np .asanyarray (frame .columns
82
80
._get_level_values (i )).repeat (N )
83
81
82
+ from pandas import DataFrame
84
83
return DataFrame (mdata , columns = mcolumns )
85
84
86
85
@@ -137,6 +136,8 @@ def lreshape(data, groups, dropna=True, label=None):
137
136
138
137
for target , names in zip (keys , values ):
139
138
to_concat = [data [col ].values for col in names ]
139
+
140
+ import pandas .core .dtypes .concat as _concat
140
141
mdata [target ] = _concat ._concat_compat (to_concat )
141
142
pivot_cols .append (target )
142
143
@@ -150,6 +151,7 @@ def lreshape(data, groups, dropna=True, label=None):
150
151
if not mask .all ():
151
152
mdata = dict ((k , v [mask ]) for k , v in compat .iteritems (mdata ))
152
153
154
+ from pandas import DataFrame
153
155
return DataFrame (mdata , columns = id_cols + pivot_cols )
154
156
155
157
0 commit comments