# How do you sort a dataset?

**URL:** <https://forum.inductiveautomation.com/t/how-do-you-sort-a-dataset/4090>\
**Category:** Ignition\
**Created:** [March 1, 2012, 8:37pm UTC](https://forum.inductiveautomation.com/t/how-do-you-sort-a-dataset/4090 "2012-03-01T20:37:58Z")\
**Posts on this page:** 1\
**Showing post:** 4

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [March 1, 2012, 10:30pm UTC](https://forum.inductiveautomation.com/t/how-do-you-sort-a-dataset/4090/4 "2012-03-01T22:30:47Z")

</div>

This is a bit ugly… we should really add a scripting function that will sort a DataSet.

```auto
headers = ["Column 1", "Column 2"]
data = [['z','foo'],['w','bar'],['a','baz']]
ds = system.dataset.toDataSet(headers, data)

def sortDataSet(ds, key_column = 0):
	# create headers
	headers = [ds.getColumnName(x) for x in range(ds.columnCount-1)]
	
	# create data
	import system
	py_ds = system.dataset.toPyDataSet(ds)
	rows = [py_ds[x] for x in range(len(py_ds))]
	rows.sort(lambda x,y,key=key_column: cmp(x[key], y[key]))
	data = [[row[x] for x in range(len(rows)-1)] for row in rows]
	
	return system.dataset.toDataSet(headers, data)

print sortDataSet(ds)
```

---

_[View the full topic](https://forum.inductiveautomation.com/t/how-do-you-sort-a-dataset/4090)._
