mirror of
https://github.com/kennethreitz/tablib.git
synced 2026-06-05 23:10:17 +00:00
Support for sorting. Unit-tested.
This commit is contained in:
@@ -10,6 +10,7 @@
|
||||
"""
|
||||
|
||||
from copy import copy
|
||||
from operator import itemgetter
|
||||
|
||||
from tablib import formats
|
||||
|
||||
@@ -528,6 +529,25 @@ class Dataset(object):
|
||||
|
||||
return _dset
|
||||
|
||||
def sort(self, col, reverse=False):
|
||||
|
||||
"""Sort a :class:`Dataset` by a specific column. The order can be
|
||||
reversed by setting ``reverse`` to ``True``. Requires headers to be
|
||||
set. Returns a new :class:`Dataset` instance where columns have been
|
||||
sorted."""
|
||||
|
||||
if not self.headers:
|
||||
raise HeadersNeeded
|
||||
|
||||
_sorted = sorted(self.dict, key=itemgetter(col), reverse=reverse)
|
||||
_dset = Dataset(headers=self.headers)
|
||||
|
||||
for item in _sorted:
|
||||
row = [item[key] for key in self.headers]
|
||||
_dset.append(row=row)
|
||||
|
||||
return _dset
|
||||
|
||||
def transpose(self):
|
||||
"""Transpose a :class:`Dataset`, turning rows into columns and vice
|
||||
versa, returning a new ``Dataset`` instance. The first row of the
|
||||
|
||||
Reference in New Issue
Block a user