def _check_label_or_level_ambiguity(self, key, axis=0):
    '\n        Check whether `key` is ambiguous.\n\n        By ambiguous, we mean that it matches both a level of the input\n        `axis` and a label of the other axis.\n\n        Parameters\n        ----------\n        key: str or object\n            label or level name\n        axis: int, default 0\n            Axis that levels are associated with (0 for index, 1 for columns)\n\n        Raises\n        ------\n        ValueError: `key` is ambiguous\n        '
    if (self.ndim > 2):
        raise NotImplementedError('_check_label_or_level_ambiguity is not implemented for {type}'.format(type=type(self)))
    axis = self._get_axis_number(axis)
    other_axes = (ax for ax in range(self._AXIS_LEN) if (ax != axis))
    if ((key is not None) and is_hashable(key) and (key in self.axes[axis].names) and any(((key in self.axes[ax]) for ax in other_axes))):
        (level_article, level_type) = (('an', 'index') if (axis == 0) else ('a', 'column'))
        (label_article, label_type) = (('a', 'column') if (axis == 0) else ('an', 'index'))
        msg = "'{key}' is both {level_article} {level_type} level and {label_article} {label_type} label, which is ambiguous.".format(key=key, level_article=level_article, level_type=level_type, label_article=label_article, label_type=label_type)
        raise ValueError(msg)
Check whether `key` is ambiguous.

By ambiguous, we mean that it matches both a level of the input
`axis` and a label of the other axis.

Parameters
----------
key: str or object
    label or level name
axis: int, default 0
    Axis that levels are associated with (0 for index, 1 for columns)

Raises
------
ValueError: `key` is ambiguous
def _check_label_or_level_ambiguity(self, key, axis=0):
    '\n        Check whether `key` is ambiguous.\n\n        By ambiguous, we mean that it matches both a level of the input\n        `axis` and a label of the other axis.\n\n        Parameters\n        ----------\n        key: str or object\n            label or level name\n        axis: int, default 0\n            Axis that levels are associated with (0 for index, 1 for columns)\n\n        Raises\n        ------\n        ValueError: `key` is ambiguous\n        '
    if (self.ndim > 2):
        raise NotImplementedError('_check_label_or_level_ambiguity is not implemented for {type}'.format(type=type(self)))
    axis = self._get_axis_number(axis)
    other_axes = (ax for ax in range(self._AXIS_LEN) if (ax != axis))
    if ((key is not None) and is_hashable(key) and (key in self.axes[axis].names) and any(((key in self.axes[ax]) for ax in other_axes))):
        (level_article, level_type) = (('an', 'index') if (axis == 0) else ('a', 'column'))
        (label_article, label_type) = (('a', 'column') if (axis == 0) else ('an', 'index'))
        msg = "'{key}' is both {level_article} {level_type} level and {label_article} {label_type} label, which is ambiguous.".format(key=key, level_article=level_article, level_type=level_type, label_article=label_article, label_type=label_type)
        raise ValueError(msg)