@@ -853,6 +853,7 @@ def check_len(item, name):
853
853
854
854
def _get_dummies_1d (data , prefix , prefix_sep = '_' , dummy_na = False ,
855
855
sparse = False , drop_first = False , dtype = None ):
856
+ from pandas .core .reshape .concat import concat
856
857
# Series avoids inconsistent NaN handling
857
858
codes , levels = _factorize_from_iterable (Series (data ))
858
859
@@ -909,7 +910,7 @@ def _make_col_name(prefix, prefix_sep, level):
909
910
index = None
910
911
911
912
if sparse :
912
- sparse_series = {}
913
+ sparse_series = []
913
914
N = len (data )
914
915
sp_indices = [[] for _ in range (len (dummy_cols ))]
915
916
mask = codes != - 1
@@ -928,10 +929,9 @@ def _make_col_name(prefix, prefix_sep, level):
928
929
sarr = SparseArray (np .ones (len (ixs ), dtype = dtype ),
929
930
sparse_index = IntIndex (N , ixs ), fill_value = 0 ,
930
931
dtype = dtype )
931
- sparse_series [ col ] = Series (data = sarr , index = index )
932
+ sparse_series . append ( Series (data = sarr , index = index , name = col ) )
932
933
933
- out = DataFrame (sparse_series , index = index , columns = dummy_cols ,
934
- dtype = dtype )
934
+ out = concat (sparse_series , axis = 1 , copy = False )
935
935
return out
936
936
937
937
else :
0 commit comments