How to find Median [duplicate] How to find Median [duplicate] python python

How to find Median [duplicate]


Python 3.4 includes statistics built-in, so you can use the method statistics.median:

>>> from statistics import median>>> median([1, 3, 5]) 3


Its a little unclear how your data is actually represented, so I've assumed it is a list of tuples:

data = [('Ram',500), ('Sam',400), ('Test',100), ('Ram',800), ('Sam',700),         ('Test',300), ('Ram',900), ('Sam',800), ('Test',400)]from collections import defaultdictdef median(mylist):    sorts = sorted(mylist)    length = len(sorts)    if not length % 2:        return (sorts[length / 2] + sorts[length / 2 - 1]) / 2.0    return sorts[length / 2]data_dict = defaultdict(list)for el in data:    data_dict[el[0]].append(el[1])print [(key,median(val)) for key, val in data_dict.items()] print median([5,2,4,3,1])   print median([5,2,4,3,1,6])#output:[('Test', 300), ('Ram', 800), ('Sam', 700)]33.5

The function median returns the median from a list. If there are an even number of entries it takes the middle value of the middle two entries (this is standard).

I've used defaultdict to create a dict keyed by your data and their values, which is a more useful representation of your data.