def update_column(self, header, column):
        """Update a column named `header` in the table.

        If length of column is smaller than number of rows, lets say
        `k`, only the first `k` values in the column is updated.

        Parameters
        ----------
        header : str
            Header of the column

        column : iterable
            Any iterable of appropriate length.

        Raises
        ------
        TypeError:
            If length of `column` is shorter than number of rows.

        ValueError:
            If no column exists with title `header`.
        """
        index = self.get_column_index(header)
        if not isinstance(header, basestring):
            raise TypeError("header must be of type str")
        for row, new_item in zip(self._table, column):
            row[index] = new_item