Returns the series' names corresponding to column_indices and column_names.
           "names" here are:
              - strings for single-indexed dataframes; or
              - tuples for multi-indexed dataframes.

           If both parameters are empty then all column names are returned.

def get_series_names(self, column_indices = [], column_names = []):
        '''Returns the series' names corresponding to column_indices and column_names.
           "names" here are:
              - strings for single-indexed dataframes; or
              - tuples for multi-indexed dataframes.

           If both parameters are empty then all column names are returned.
        '''
        n = []
        if not column_indices and not column_names:
            for k, v in sorted(self.series_names.iteritems()):
                # Iterate by index to preserve document order
                if v != self.reference_series:
                    n.append(k)
        else:
            s = set([self.series_names[x] for x in column_indices])
            t = set([self.series_index[x] for x in column_names])
            n = sorted(s.union(t))
        assert(n)
        return [self.series_names[x] for x in n]