@@ -853,6 +853,7 @@ def check_len(item, name):
853853
854854def _get_dummies_1d (data , prefix , prefix_sep = '_' , dummy_na = False ,
855855 sparse = False , drop_first = False , dtype = None ):
856+ from pandas .core .reshape .concat import concat
856857 # Series avoids inconsistent NaN handling
857858 codes , levels = _factorize_from_iterable (Series (data ))
858859
@@ -909,7 +910,7 @@ def _make_col_name(prefix, prefix_sep, level):
909910 index = None
910911
911912 if sparse :
912- sparse_series = {}
913+ sparse_series = []
913914 N = len (data )
914915 sp_indices = [[] for _ in range (len (dummy_cols ))]
915916 mask = codes != - 1
@@ -928,10 +929,9 @@ def _make_col_name(prefix, prefix_sep, level):
928929 sarr = SparseArray (np .ones (len (ixs ), dtype = dtype ),
929930 sparse_index = IntIndex (N , ixs ), fill_value = 0 ,
930931 dtype = dtype )
931- sparse_series [ col ] = Series (data = sarr , index = index )
932+ sparse_series . append ( Series (data = sarr , index = index , name = col ) )
932933
933- out = DataFrame (sparse_series , index = index , columns = dummy_cols ,
934- dtype = dtype )
934+ out = concat (sparse_series , axis = 1 , copy = False )
935935 return out
936936
937937 else :
0 commit comments