检查Python中数据框列的顶部值

时间:2018-11-05 18:29:08

标签: python python-3.x pandas dataframe

我有一个大型数据集,看起来像:

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()来检查最高百分位数,但这对我没有帮助,因为如果我将阈值设置为“已生产”的最高百分位数,则会丢失某些数据。

这是一个新手问题,但是我如何根据此标准轻松选择和定位这些顶级商店?也许仅使用百分位数创建一系列顶级店铺,然后在数据集中剔除这些店铺?感觉有更好的方法来做到这一点。

3 个答案:

答案 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()