code: def iteritems(self):
          r
          if self.columns.is_unique and hasattr(self, '_item_cache'):
              for k in self.columns:
                  yield k, self._get_item_cache(k)
          else:
              for i, k in enumerate(self.columns):
                  yield k, self._ixs(i, axis=1)
docs: r"""
          Iterator over (column name, Series) pairs.
  
          Iterates over the DataFrame columns, returning a tuple with
          the column name and the content as a Series.
  
          Yields
          ------
          label : object
              The column names for the DataFrame being iterated over.
          content : Series
              The column entries belonging to each label, as a Series.
  
          See Also
          --------
          DataFrame.iterrows : Iterate over DataFrame rows as
              (index, Series) pairs.
          DataFrame.itertuples : Iterate over DataFrame rows as namedtuples
              of the values.
  
          Examples
          --------
          >>> df = pd.DataFrame({'species': ['bear', 'bear', 'marsupial'],
          ...                   'population': [1864, 22000, 80000]},
          ...                   index=['panda', 'polar', 'koala'])
          >>> df
                  species   population
          panda 	bear 	  1864
          polar 	bear 	  22000
          koala 	marsupial 80000
          >>> for label, content in df.iteritems():
          ...     print('label:', label)
          ...     print('content:', content, sep='\n')
          ...
          label: species
          content:
          panda         bear
          polar         bear
          koala    marsupial
          Name: species, dtype: object
          label: population
          content:
          panda     1864
          polar    22000
          koala    80000
          Name: population, dtype: int64