docs: def shift(self, shifts=None, fill_value=dtypes.NA, **shifts_kwargs):
          """Shift this array by an offset along one or more dimensions.
  
          Only the data is moved; coordinates stay in place. Values shifted from
          beyond array bounds are replaced by NaN. 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 : DataArray
              DataArray with the same coordinates and attributes but shifted
              data.
  
          See also
          --------
          roll
  
          Examples
          --------
  
          >>> arr = xr.DataArray([5, 6, 7], dims='x')
          >>> arr.shift(x=1)
          <xarray.DataArray (x: 3)>
          array([ nan,   5.,   6.])
          Coordinates:
            * x        (x) int64 0 1 2
          """
          variable = self.variable.shift(
              shifts=shifts, fill_value=fill_value, **shifts_kwargs)
          return self._replace(variable=variable)