code: def fill_n(self, values, weights=None, dropna: bool = True):
          
          # TODO: Unify with HistogramBase
          values = np.asarray(values)
          if dropna:
              values = values[~np.isnan(values)]
          if self._binning.is_adaptive():
              map = self._binning.force_bin_existence(values)
              self._reshape_data(self._binning.bin_count, map)
          if weights:
              weights = np.asarray(weights)
              self._coerce_dtype(weights.dtype)
          (frequencies, errors2, underflow, overflow, stats) = \
              calculate_frequencies(values, self._binning, dtype=self.dtype,
                                    weights=weights, validate_bins=False)
          self._frequencies += frequencies
          self._errors2 += errors2
          # TODO: check that adaptive does not produce under-/over-flows?
          if self.keep_missed:
              self.underflow += underflow
              self.overflow += overflow
          if self._stats:
              for key in self._stats:
                  self._stats[key] += stats.get(key, 0.0)
docs: Update histograms with a set of values.
  
          Parameters
          ----------
          values: array_like
          weights: Optional[array_like]
          drop_na: Optional[bool]
              If true (default), all nan's are skipped.