docs: def shift(self, shifts=None, fill_value=dtypes.NA, **shifts_kwargs):
          """Shift this dataset by an offset along one or more dimensions.
  
          Only data variables are moved; coordinates stay in place. This is
          consistent with the behavior of ``shift`` in pandas.
  
          Parameters
          ----------
          shifts : Mapping with the form of {dim: offset}
              Integer offset to shift along each of the given dimensions.
              Positive offsets shift to the right; negative offsets shift to the
              left.
          fill_value: scalar, optional
              Value to use for newly missing values
          **shifts_kwargs:
              The keyword arguments form of ``shifts``.
              One of shifts or shifts_kwarg must be provided.
  
          Returns
          -------
          shifted : Dataset
              Dataset with the same coordinates and attributes but shifted data
              variables.
  
          See also
          --------
          roll
  
          Examples
          --------
  
          >>> ds = xr.Dataset({'foo': ('x', list('abcde'))})
          >>> ds.shift(x=2)
          <xarray.Dataset>
          Dimensions:  (x: 5)
          Coordinates:
            * x        (x) int64 0 1 2 3 4
          Data variables:
              foo      (x) object nan nan 'a' 'b' 'c'
          """
          shifts = either_dict_or_kwargs(shifts, shifts_kwargs, 'shift')
          invalid = [k for k in shifts if k not in self.dims]
          if invalid:
              raise ValueError("dimensions %r do not exist" % invalid)
  
          variables = OrderedDict()
          for name, var in self.variables.items():
              if name in self.data_vars:
                  var_shifts = {k: v for k, v in shifts.items()
                                if k in var.dims}
                  variables[name] = var.shift(
                      fill_value=fill_value, shifts=var_shifts)
              else:
                  variables[name] = var
  
          return self._replace_vars_and_dims(variables)