def concat(self, to_concat, new_axis):
non_empties = [x for x in to_concat if len(x) > <NUM_LIT:0>]<EOL>if len(non_empties) > <NUM_LIT:0>:<EOL><INDENT>blocks = [obj.blocks[<NUM_LIT:0>] for obj in non_empties]<EOL>if len({b.dtype for b in blocks}) == <NUM_LIT:1>:<EOL><INDENT>new_block = blocks[<NUM_LIT:0>].concat_same_type(blocks)<EOL><DEDENT>else:<EOL><INDENT>values = [x.values for x in blocks]<EOL>values = _concat._concat_compat(values)<EOL>new_block = make_block(<EOL>values, placement=slice(<NUM_LIT:0>, len(values), <NUM_LIT:1>))<EOL><DEDENT><DEDENT>else:<EOL><INDENT>values = [x._block.values for x in to_concat]<EOL>values = _concat._concat_compat(values)<EOL>new_block = make_block(<EOL>values, placement=slice(<NUM_LIT:0>, len(values), <NUM_LIT:1>))<EOL><DEDENT>mgr = SingleBlockManager(new_block, new_axis)<EOL>return mgr<EOL>
Concatenate a list of SingleBlockManagers into a single
SingleBlockManager.

Used for pd.concat of Series objects with axis=0.

Parameters
----------
to_concat : list of SingleBlockManagers
new_axis : Index of the result

Returns
-------
SingleBlockManager