def powerset(iterable):
    """powerset([1,2,3]) --> () (1,) (2,) (3,) (1,2) (1,3) (2,3) (1,2,3)"""
s = list(iterable)
return chain.from_iterable(combinations(s, r) for r in range(1, len(s) + 1))
a = [['A', 'b1', '01/01/2015', 3], ['A', 'b1', '01/02/2015', 4], ['A', 'b1',
    '01/03/2015', 2], ['A', 'b2', '01/01/2015', 7], ['A', 'b2',
    '01/02/2015', 2], ['A', 'b2', '01/03/2015', 1], ['A', 'b3',
    '01/01/2015', 6], ['A', 'b3', '01/02/2015', 3], ['A', 'b3',
    '01/03/2015', 1]]
df = pd.DataFrame(a, columns=['Company', 'Brand', 'Date', 'Amount'])
ps = powerset(['b1', 'b2', 'b3'])
new_df = pd.DataFrame()
for s in ps:
    pass
Панды создают набор мощности и средние данные