我有一个大型数据集,看起来像:
Shop Date Hour Ending Hours Operating Produced
Cornerstop 01-01-2010 0 1 9
Cornerstop 01-01-2010 1 1 11
Cornerstop 01-01-2010 2 1 10
.
.
Cornerstop 01-01-2010 23 1 0
Leaf Grove 01-01-2010 0 1 7
Leaf Grove 01-01-2010 1 1 4
Leaf Grove 01-01-2010 2 1 2
我想找出按产量计算排名前20位的商店。我已经使用data.describe()
来检查最高百分位数,但这对我没有帮助,因为如果我将阈值设置为“已生产”的最高百分位数,则会丢失某些数据。
这是一个新手问题,但是我如何根据此标准轻松选择和定位这些顶级商店?也许仅使用百分位数创建一系列顶级店铺,然后在数据集中剔除这些店铺?感觉有更好的方法来做到这一点。
答案 0 :(得分:1)
使用sort_values()
和head()
:
df.sort_values('Produced', ascending=False).head(20)
如果要对每个商店的生产值求和然后进行排序,可以执行以下操作:
df.groupby('Shop').agg({'Produced': 'sum'}).sort_values('Produced', ascending=False).head(20)
答案 1 :(得分:0)
接下来如何对列进行排序然后排在前20位呢?
df= df.sort_values(['Produced'], ascending=[False])
df.head(20)
答案 2 :(得分:0)
使用.nlargest
df.groupby('Shop').Produced.sum().nlargest(20)
如果只需要商店列表,请添加.index.tolist()
。