code: def make_flat_df(frames, return_addresses):
      
  
      # Todo: could also try a list comprehension here, or parallel apply
      visited = list(map(lambda x: visit_addresses(x, return_addresses), frames))
      return pd.DataFrame(visited)
docs: Takes a list of dictionaries, each representing what is returned from the
      model at a particular time, and creates a dataframe whose columns correspond
      to the keys of `return addresses`
  
      Parameters
      ----------
      frames: list of dictionaries
          each dictionary represents the result of a prticular time in the model
      return_addresses: a dictionary,
          keys will be column names of the resulting dataframe, and are what the
          user passed in as 'return_columns'. Values are a tuple:
          (py_name, {coords dictionary}) which tells us where to look for the value
          to put in that specific column.
  
      Returns
      -------