'Transpose a :class:`Dataset`, turning rows into columns and vice
versa, returning a new ``Dataset`` instance. The first row of the
original instance becomes the new header row.'

def transpose(self):

    if (not self):
        return
    _dset = Dataset()
    new_headers = ([self.headers[0]] + self[self.headers[0]])
    _dset.headers = new_headers
    for column in self.headers:
        if (column == self.headers[0]):
            continue
        row_data = ([column] + self[column])
        row_data = Row(row_data)
        _dset.append(row=row_data)
    return _dset
