python - Pandas nlargest plus 始终包含“X”
问题描述
我正在尝试创建一个图表,其中列出了前 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
如何根据产品排名的总和选择前 4 个品牌,然后始终包括我的品牌,品牌“X”?
另外,如果我的品牌在前 4 个品牌中,我该如何选择前 5 个品牌,以便在每个图表中都有 5 个品牌的常数?
谢谢!
解决方案
你可以这样做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
推荐阅读
- java - 使用 mvn 版本排除属性:使用 excludesList 更新属性
- python - 封装的概念在 Python 中是如何工作的?
- python - 使用 Python API Client for Grakn 加载数据时出现问题
- arrays - 将 int 分配给结构数组但打印为 0(不同)
- python - 迭代不同长度的df并导出到csv
- excel - 尝试在工作表中查找匹配项时出现运行时错误“91”VBA
- sql - 如何在 SQL 日期类型列中插入日期?
- javascript - 如何在 datepicker 下拉列表中增加 120 天?
- python-3.x - 有没有办法从芹菜任务中获取触发时间?
- algorithm - 3 近似算法(随机或确定)