From 38486231cc4dc46d1ff055a38fe7c236cbe5c8aa Mon Sep 17 00:00:00 2001 From: Norman Hooper Date: Wed, 12 Sep 2018 20:27:10 +0200 Subject: reStructuredText (#336) * median for Python 2 * More compat * Support reStructuredText * Tests --- tablib/packages/statistics.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 tablib/packages/statistics.py (limited to 'tablib/packages/statistics.py') diff --git a/tablib/packages/statistics.py b/tablib/packages/statistics.py new file mode 100644 index 0000000..e97a6c9 --- /dev/null +++ b/tablib/packages/statistics.py @@ -0,0 +1,24 @@ +from __future__ import division + + +def median(data): + """ + Return the median (middle value) of numeric data, using the common + "mean of middle two" method. If data is empty, ValueError is raised. + + Mimics the behaviour of Python3's statistics.median + + >>> median([1, 3, 5]) + 3 + >>> median([1, 3, 5, 7]) + 4.0 + + """ + data = sorted(data) + n = len(data) + if not n: + raise ValueError("No median for empty data") + i = n // 2 + if n % 2: + return data[i] + return (data[i - 1] + data[i]) / 2 -- cgit v1.2.1