2014-08-27 64 views
1

現在,我的代碼導出爲CSV,看起來像這樣刪除滿足一定的數值​​標準,熊貓(Python 3中)行

Keyword  Sum   Score  Observances 
    Green   0   inf   1 
    Eggs   5   3   2 
    And   10   5   3 
    Ham    0   inf   4 

我想怎麼辦是刪除所有這些行在Sum列中包含0並在分數下包含「inf」。

我的代碼,現在去如下:

newlist = df1.join(s) 
def func(x): 
    return pd.Series({'Observances': len(x),'Sum': x.Conv.sum(),'Zero': len(x[x.Conv==0])}) 
group = newlist.groupby(['Keyword']).apply(func).reset_index() 
score = group.Sum/(group.Observances - group.Zero) 
group['Score'] = score 

我試圖取代所有的「INF」與南,然後用熊貓去除掉,但似乎並沒有工作(可能做錯了)。我已閱讀.filter函數可能是我正在尋找,但仍然不確定。

任何幫助將不勝感激!

+0

對不起,你要刪除的總和小於5的所有行或有inf在分數? – EdChum 2014-08-27 14:31:53

+0

你提供的代碼與這個問題有什麼關係? – joris 2014-08-27 14:32:03

+0

哈!只是在我發佈之後馬上就發現它了,然而,欣賞這些反應和興趣。謝謝! – user3682157 2014-08-27 14:37:22

回答

0

基於I上面提供的代碼,此答案是一個簡單的如使用以下代碼以除去任何等於0:

removal = group[group.Sum != 0] 

或者下面的代碼來除去任何小於5:

removal = group[group['Sum'] >= 5] 

這解決了我的問題,因爲「INF」是的總和列依賴於0 - 通過消除一個我擺脫這兩個