def add_column(self, name, scheme, ctx):
        """Add a new column to the frame.

        The frame will be initialized by the initializer.

        Parameters
        ----------
        name : str
            The column name.
        scheme : Scheme
            The column scheme.
        ctx : DGLContext
            The column context.
        """
        if name in self:
            dgl_warning(
                'Column "%s" already exists. Ignore adding this column again.'
                % name
            )
            return

        if self.get_initializer(name) is None:
            self._set_zero_default_initializer()
        initializer = self.get_initializer(name)
        init_data = initializer(
            (self.num_rows,) + scheme.shape,
            scheme.dtype,
            ctx,
            slice(0, self.num_rows),
        )
        self._columns[name] = Column(init_data, scheme)
Add a new column to the frame.

        The frame will be initialized by the initializer.

        Parameters
        ----------
        name : str
            The column name.
        scheme : Scheme
            The column scheme.
        ctx : DGLContext
            The column context.
        
python/dgl/frame.py