2015-10-30 45 views
2

我是熊貓新手。 爲了簡化,我有一個包含兩列的數據框:product_id和rating。每個條目都是給定產品的新評論。 現在我想要得到一個新的數據框,其中對應於接收少於20條評論的產品的行(即,在原始數據框中出現少於20次)的行被刪除。 我可以指望出現次數與數量:熊貓掉落稀有條目

a = data.groupby('product_id').count() 
b = a.loc[a['rating']>20] 

但是,讓我回一維的數據幀。顯示時,每個product_id都有其計數,但我無法訪問實際的product_id以使用它們來過濾原始表。對於instace,

b.values 

還給計數的一維數組,但沒有product_ids。

回答

3

你想filter

a = data.groupby('product_id').filter(lambda x: len(x) > 20) 
+0

感謝,完美的作品! – Botond

+0

酷,請記住接受我的答案,我的答案左上角會有一個空的刻度線。 – EdChum

+0

完成!我也想知道這是如何工作的:不知怎的,groupby + count非常快,但是過濾速度要慢得多,儘管它們都是在函數中構建的。 – Botond