docs: def update_data_frames(network, cluster_weights, dates, hours):
      """ Updates the snapshots, snapshots weights and the dataframes based on
      the original data in the network and the medoids created by clustering
      these original data.
  
      Parameters
      -----------
      network : pyPSA network object
      cluster_weights: dictionary
      dates: Datetimeindex
  
  
      Returns
      -------
      network
  
      """
      network.snapshot_weightings = network.snapshot_weightings.loc[dates]
      network.snapshots = network.snapshot_weightings.index
  
      # set new snapshot weights from cluster_weights
      snapshot_weightings = []
      for i in cluster_weights.values():
          x = 0
          while x < hours:
              snapshot_weightings.append(i)
              x += 1
      for i in range(len(network.snapshot_weightings)):
          network.snapshot_weightings[i] = snapshot_weightings[i]
  
      # put the snapshot in the right order
      network.snapshots.sort_values()
      network.snapshot_weightings.sort_index()
  
      return network