diff --git a/modin/pandas/utils.py b/modin/pandas/utils.py index 2193c4858a9..e461b0ac7a0 100644 --- a/modin/pandas/utils.py +++ b/modin/pandas/utils.py @@ -408,8 +408,13 @@ def _create_blocks_helper(df, npartitions, axis): @ray.remote def _blocks_to_col(*partition): if len(partition): - return pandas.concat(partition, axis=0, copy=False)\ - .reset_index(drop=True) + df = pandas.DataFrame(np.concatenate(partition, axis=0)) + + # heterogenous types + if len(np.unique(partition[0].dtypes.values)) > 1: + df = df.astype(partition[0].dtypes, copy=False) + + return df else: return pandas.Series()