code: def order_series_by(series, order_series):
      
  
      if isinstance(order_series, (list, tuple)):
          sorter = pd.concat(order_series, axis=1)
          sorter_columns = ['_sorter' + str(i) for i in range(len(order_series))]
          sorter.columns = sorter_columns
          sorter['series'] = series.values
          sorted_series = sorter.sort_values(sorter_columns)['series']
          return sorted_series
      else:
          sorted_series = pd.DataFrame({
              'series': series.values,
              'order': order_series.values
          }).sort_values('order', ascending=True)['series']
          return sorted_series
docs: Orders one series according to another series, or a list of other
      series. If a list of other series are specified, ordering is done hierarchically
      like when a list of columns is supplied to `.sort_values()`.
  
      Args:
          series (:obj:`pandas.Series`): the pandas Series object to be reordered.
          order_series: either a pandas Series object or a list of pandas Series
              objects. These will be sorted using `.sort_values()` with
              `ascending=True`, and the new order will be used to reorder the
              Series supplied in the first argument.
  
      Returns:
          reordered `pandas.Series` object