My df:
Test_Data = [('Client', ['A', 'A', 'A', 'B', 'B', 'B','C','C']),
('Currency', ['USD', 'EUR', 'USD', 'AUD', 'EUR', 'USD', 'GBP', 'USD']),
('SalesPerson', ['Dave', 'Dave', 'Bob', 'Dave', 'Dave', 'Bob','Dave','Bob']),
('Done_Trades', [1,1,2,3,3,4,5,6]),
('Average_Qty', [10, 50, 100, 10, 50, 1000, 50, 100]),
('Average_Qty_CAD', [1, 2, 3, 30,20, 10,1,2])
df = pd.DataFrame(dict(Test_Data))
print(df)
Client Currency SalesPerson Done_Trades Average_Qty Average_Qty_CAD
0 A USD Dave 1 10 1
1 A EUR Dave 1 50 2
2 A USD Bob 2 100 3
3 B AUD Dave 3 10 30
4 B EUR Dave 3 50 20
5 B USD Bob 4 1000 10
6 C GBP Dave 5 50 1
7 C USD Bob 6 100 2
a.У клиента B самая высокая сумма Average_Qty_CAD для каждого клиента (60), поэтому сначала он отображается, затем следует A (6), а затем C (3).
b.В пределах B у Дэйва самый высокий Average_Qty_CAD (30), затем второй (20), а у Боба третий (10), поэтому мы хотим, чтобы строки B упорядочивались по 30,20,10.
c.В пределах А у Боба самый высокий Average_Qty_CAD (3), затем две записи Дейва (2,1), поэтому мы хотим, чтобы А заказал 3,2,1.
д.В C у Боба самый высокий Average_Qty_CAD (1002, затем Dave (1), поэтому порядок 2, 1
Также, если бы я хотел, чтобы сумма каждого клиента Average_Qty_CAD отображала, что нужно добавить?
Желаемый df:
Client Currency SalesPerson Done_Trades Average_Qty Average_Qty_CAD Total per Client
2 B AUD Dave 3 10 30 60
1 B EUR Dave 3 50 20 60
0 B USD Bob 4 1000 10 60
3 A USD Bob 2 100 3 6
4 A EUR Dave 1 50 2 6
5 A USD Dave 1 10 1 6
6 C USD Bob 6 100 2 3
7 C GBP Dave 5 50 1 3