docs: def avg(self, func=lambda x: x):
          """
          Returns the average value of data elements
          :param func: lambda expression to transform data
          :return: average value as float object
          """
          count = self.count()
          if count == 0:
              raise NoElementsError(u"Iterable contains no elements")
          return float(self.sum(func)) / float(count)