code: def to_dataframe(self, name=None):
          
          if name is None:
              name = self.name
          if name is None:
              raise ValueError('cannot convert an unnamed DataArray to a '
                               'DataFrame: use the ``name`` parameter')
  
          dims = OrderedDict(zip(self.dims, self.shape))
          # By using a unique name, we can convert a DataArray into a DataFrame
          # even if it shares a name with one of its coordinates.
          # I would normally use unique_name = object() but that results in a
          # dataframe with columns in the wrong order, for reasons I have not
          # been able to debug (possibly a pandas bug?).
          unique_name = '__unique_name_identifier_z98xfz98xugfg73ho__'
          ds = self._to_dataset_whole(name=unique_name)
          df = ds._to_dataframe(dims)
          df.columns = [name if c == unique_name else c
                        for c in df.columns]
          return df
docs: Convert this array and its coordinates into a tidy pandas.DataFrame.
  
          The DataFrame is indexed by the Cartesian product of index coordinates
          (in the form of a :py:class:`pandas.MultiIndex`).
  
          Other coordinates are included as columns in the DataFrame.