'Inplace union is the maximum of value from either counter.
>>> c = Counter(\'abbb\')
>>> c |= Counter(\'bcc\')
>>> c
Counter({\'b\': 3, \'c\': 2, \'a\': 1})'

def __ior__(self, other):

    for (elem, other_count) in other.items():
        count = self[elem]
        if (other_count > count):
            self[elem] = other_count
    return self._keep_positive()
