Skip to main content
`Ctrl`+`K`

# pandas.DataFrame.to_xarray

DataFrame.to_xarray()

  Return an xarray object from the pandas object.

  This method converts a pandas object to an xarray object, which is useful for working with labeled multi-dimensional data.

  Returns:
    xarray.DataArray or xarray.Dataset

      Data in the pandas structure converted to Dataset if the object is a DataFrame, or a DataArray if the object is a Series.

  See also

  `DataFrame.to_hdf`

    Write DataFrame to an HDF5 file.

  `DataFrame.to_parquet`

    Write a DataFrame to the binary parquet format.

  Notes

  See the xarray docs

  Examples

      >>> df = pd.DataFrame(
      ...     [
      ...         ("falcon", "bird", 389.0, 2),
      ...         ("parrot", "bird", 24.0, 2),
      ...         ("lion", "mammal", 80.5, 4),
      ...         ("monkey", "mammal", np.nan, 4),
      ...     ],
      ...     columns=["name", "class", "max_speed", "num_legs"],
      ... )
      >>> df
           name   class  max_speed  num_legs
      0  falcon    bird      389.0         2
      1  parrot    bird       24.0         2
      2    lion  mammal       80.5         4
      3  monkey  mammal        NaN         4

      >>> df.to_xarray()
      <xarray.Dataset>
      Dimensions:    (index: 4)
      Coordinates:
        * index      (index) int64 32B 0 1 2 3
      Data variables:
          name       (index) object 32B 'falcon' 'parrot' 'lion' 'monkey'
          class      (index) object 32B 'bird' 'bird' 'mammal' 'mammal'
          max_speed  (index) float64 32B 389.0 24.0 80.5 nan
          num_legs   (index) int64 32B 2 2 4 4

      >>> df["max_speed"].to_xarray()
      <xarray.DataArray 'max_speed' (index: 4)>
      array([389. ,  24. ,  80.5,   nan])
      Coordinates:
        * index    (index) int64 0 1 2 3

      >>> dates = pd.to_datetime(
      ...     ["2018-01-01", "2018-01-01", "2018-01-02", "2018-01-02"]
      ... )
      >>> df_multiindex = pd.DataFrame(
      ...     {
      ...         "date": dates,
      ...         "animal": ["falcon", "parrot", "falcon", "parrot"],
      ...         "speed": [350, 18, 361, 15],
      ...     }
      ... )
      >>> df_multiindex = df_multiindex.set_index(["date", "animal"])

      >>> df_multiindex
                         speed
      date       animal
      2018-01-01 falcon    350
                 parrot     18
      2018-01-02 falcon    361
                 parrot     15

      >>> df_multiindex.to_xarray()
      <xarray.Dataset>
      Dimensions:  (date: 2, animal: 2)
      Coordinates:
        * date     (date) datetime64[s] 2018-01-01 2018-01-02
        * animal   (animal) object 'falcon' 'parrot'
      Data variables:
          speed    (date, animal) int64 350 18 361 15