我正在尝试创建一个图表,其中列出了前4个品牌,加上我代表的品牌(" X"),以及他们所有产品排名的总和。
以下是3个品牌的示例以及数据的样子(我的数据集中有300多个品牌)。
Brand | Product | Rank
A | P1 | 1000
| P2 | 1210
| P3 | 2000
| P4 | 600
| P5 | 756
| P6 | 867
B | P1 | 549
| P2 | 1572
| P3 | 3490
| P4 | 2341
| P5 | 431
| P6 | 321
C | P1 | 421
| P2 | 121
| P3 | 805
| P4 | 1202
| P5 | 4032
| P6 | 432
如何根据产品的总和选择前四大品牌'排名,然后总是包括我的品牌,品牌" X"?
此外,如果我的品牌是前四大品牌,我怎样才能选择前五大品牌,以便每个图表中有5个品牌?
谢谢!
答案 0 :(得分:2)
您可以使用pd.concat
n=2# input the number you need
x='A' # input the brand you want to keep
pd.concat([df.sum(level=0).sort_values('Rank',ascending=False).head(2),df.sum(level=0).loc[[x]]]).max(level=0)
Out[456]:
Rank
Brand
B 8704
C 7013
A 6433