@@ -106,6 +106,8 @@ def ordered_merge(left, right, on=None, left_by=None, right_by=None,
106106 Returns
107107 -------
108108 merged : DataFrame
109+ The output type will the be same as 'left', if it is a subclass
110+ of DataFrame.
109111 """
110112 def _merger (x , y ):
111113 op = _OrderedMerge (x , y , on = on , left_on = left_on , right_on = right_on ,
@@ -198,7 +200,8 @@ def get_result(self):
198200 axes = [llabels .append (rlabels ), join_index ],
199201 concat_axis = 0 , copy = self .copy )
200202
201- result = DataFrame (result_data ).__finalize__ (self , method = 'merge' )
203+ typ = self .left ._constructor
204+ result = typ (result_data ).__finalize__ (self , method = 'merge' )
202205
203206 self ._maybe_add_join_keys (result , left_indexer , right_indexer )
204207
@@ -520,7 +523,8 @@ def get_result(self):
520523 axes = [llabels .append (rlabels ), join_index ],
521524 concat_axis = 0 , copy = self .copy )
522525
523- result = DataFrame (result_data )
526+ typ = self .left ._constructor
527+ result = typ (result_data ).__finalize__ (self , method = 'ordered_merge' )
524528
525529 self ._maybe_add_join_keys (result , left_indexer , right_indexer )
526530
0 commit comments