def get_option_default(self, key, subkey):
        """Get the default value of the option.

        :param str key: First identifier of the option.
        :param str subkey: Second identifier of the option.

        :return: Default value of the option (type varies).

        :raise:
            :NotRegisteredError: If ``key`` or ``subkey`` do not define
                any option.
        """
        key, subkey = _lower_keys(key, subkey)
        _entry_must_exist(self.gc, key, subkey)

        df = self.gc[(self.gc["k1"] == key) & (self.gc["k2"] == subkey)]
        if df["type"].values[0] == "bool":
            return bool(df["default"].values[0])
        elif df["type"].values[0] == "int":
            return int(df["default"].values[0])
        else:
            return df["default"].values[0]