Вот демо:
Код: Выделить всё
In [54]: df = pd.DataFrame({'color': ['blue', 'grey', 'blue', 'grey', 'black'], 'name': ['pen', 'pen', 'pencil', 'pencil', 'box'],'price':[2.5, 2.3, 1.5, 1.3, 5.2],'bprice':[2.2, 2, 1.3, 1.2, 5.0]})
In [55]: df
Out[55]:
color name price bprice
0 blue pen 2.5 2.2
1 grey pen 2.3 2.0
2 blue pencil 1.5 1.3
3 grey pencil 1.3 1.2
4 black box 5.2 5.0
In [56]: a = df.groupby(['color', 'name'])[['price', 'bprice']].sum()
In [57]: a
Out[57]:
price bprice
color name
black box 5.2 5.0
blue pen 2.5 2.2
pencil 1.5 1.3
grey pen 2.3 2.0
pencil 1.3 1.2
Код: Выделить всё
price bprice
color name
black * 5.2 5.0
box 5.2 5.0
blue * 4.0 3.5
pen 2.5 2.2
pencil 1.5 1.3
grey * 3.6 3.2
pen 2.3 2.0
pencil 1.3 1.2
- Новая строка * должна находиться в первой строке каждого group
- ожидайте строку *, другая строка должна быть отсортирована по цене
не могли бы вы с этим помочь?
Подробнее здесь: https://stackoverflow.com/questions/791 ... -dataframe