# xarray.Coordinates.assign

#### Coordinates.assign(coords=None, \*\*coords_kwargs)[[source]](https://github.com/pydata/xarray/blob/main/xarray/core/coordinates.py#L664-L715)

Assign new coordinates (and indexes) to a Coordinates object, returning
a new object with all the original coordinates in addition to the new ones.

* **Parameters:**
  * **coords** ([mapping](https://docs.python.org/3/glossary.html#term-mapping) of `dim` to `coord`, *optional*) – A mapping whose keys are the names of the coordinates and values are the
    coordinates to assign. The mapping will generally be a dict or
    [`Coordinates`](xarray.Coordinates.html.md#xarray.Coordinates).
    * If a value is a standard data value — for example, a `DataArray`,
      scalar, or array — the data is simply assigned as a coordinate.
    * A coordinate can also be defined and attached to an existing dimension
      using a tuple with the first element the dimension name and the second
      element the values for this new coordinate.
  * **\*\*coords_kwargs** – The keyword arguments form of `coords`.
    One of `coords` or `coords_kwargs` must be provided.
* **Returns:**
  **new_coords** ([`Coordinates`](xarray.Coordinates.html.md#xarray.Coordinates)) – A new Coordinates object with the new coordinates (and indexes)
  in addition to all the existing coordinates.

### Examples

<div class="try_examples_button_container"><button class="try_examples_button" onclick="window.tryExamplesShowIframe('d1f85d3e-a3d5-44fc-97c4-fef0b0a832b9','6866a10f-f044-4c95-9215-03dfe2ef65fd','255040a1-220b-4a01-9fb4-063e9ba7187e','../lite/tree/../notebooks/index.html?path=ecd3829c_d52b_4fcc_aa74_61d35f661b8d.ipynb','None')">Try it in your browser!</button></div>
```pycon
>>> coords = xr.Coordinates()
>>> coords
Coordinates:
    *empty*
```

```pycon
>>> coords.assign(x=[1, 2])
Coordinates:
  * x        (x) int64 16B 1 2
```

```pycon
>>> midx = pd.MultiIndex.from_product([["a", "b"], [0, 1]])
>>> coords.assign(xr.Coordinates.from_pandas_multiindex(midx, "y"))
Coordinates:
  * y          (y) object 32B MultiIndex
  * y_level_0  (y) object 32B 'a' 'a' 'b' 'b'
  * y_level_1  (y) int64 32B 0 1 0 1
```

<div id="255040a1-220b-4a01-9fb4-063e9ba7187e" class="try_examples_outer_iframe  hidden"><div class="try_examples_button_container"><button class="try_examples_button" onclick="window.tryExamplesHideIframe('d1f85d3e-a3d5-44fc-97c4-fef0b0a832b9','255040a1-220b-4a01-9fb4-063e9ba7187e')">Go Back</button><button class="try_examples_button" onclick="window.openInNewTab('d1f85d3e-a3d5-44fc-97c4-fef0b0a832b9','255040a1-220b-4a01-9fb4-063e9ba7187e')">Open In Tab</button></div><div id="6866a10f-f044-4c95-9215-03dfe2ef65fd" class="jupyterlite_sphinx_iframe_container"></div></div><script>document.addEventListener("DOMContentLoaded", function() {window.loadTryExamplesConfig("../try_examples.json");});</script>
