diff options
| author | Jean Jordaan <jean.jordaan@gmail.com> | 2019-03-03 13:29:21 +0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-03-03 13:29:21 +0700 |
| commit | addaa090efb4d4beacb2bd2cc6dbdb7e158fa2a9 (patch) | |
| tree | de3b532ed49a0d1e8a2e333b549b129d534bff91 /tablib/packages/statistics.py | |
| parent | cd67a63b434c33430d8fd32d6d15027b42811d9d (diff) | |
| parent | 79dc77de49b8375d616a6cabb4503feb990bb51d (diff) | |
| download | tablib-addaa090efb4d4beacb2bd2cc6dbdb7e158fa2a9.tar.gz | |
Merge branch 'master' into master
Diffstat (limited to 'tablib/packages/statistics.py')
| -rw-r--r-- | tablib/packages/statistics.py | 24 |
1 files changed, 24 insertions, 0 deletions
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 |
