现在,我的代码会导出一个类似于
的CSV 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
我试图用NaN替换所有的“inf”,然后使用Pandas函数删除它们,但这似乎不起作用(可能做错了)。我已经读过.filter函数可能是我正在寻找但仍然不确定。
非常感谢任何帮助!
答案 0 :(得分:0)
基于我上面提供的代码,这个答案很简单,因为使用以下代码删除任何等于0的内容:
removal = group[group.Sum != 0]
或以下代码删除少于5的任何内容:
removal = group[group['Sum'] >= 5]
这解决了我的问题,因为" inf"取决于总和列中的0 - 通过删除一个我摆脱了两个