簡體   English   中英

在Python中檢查數據框列的頂部值

[英]Checking top values for dataframe columns in Python

我有一個大型數據集,看起來像:

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()來檢查最高百分比,但這對我沒有幫助,因為如果我將閾值設置為“已生產”的最高百分比,那么某些日子將丟失在數據中。

這是一個新手問題,但是如何根據此標准輕松選擇和定位這些頂級商店? 也許僅使用百分位數創建一系列頂級店鋪,然后在數據集中剔除這些店鋪? 感覺有更好的方法可以做到這一點。

使用sort_values()head()

df.sort_values('Produced', ascending=False).head(20)

如果要匯總每個商店的生產值然后進行排序,可以執行以下操作:

df.groupby('Shop').agg({'Produced': 'sum'}).sort_values('Produced', ascending=False).head(20)

接下來如何對列進行排序,然后排在前20位呢?

df= df.sort_values(['Produced'], ascending=[False])
df.head(20)

使用.nlargest

df.groupby('Shop').Produced.sum().nlargest(20)

如果只需要商店列表,請添加.index.tolist()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM