删除任何值为0的行

时间:2019-05-28 11:17:01

标签: pandas

我有一个包含两列“服务”和“值”的数据框。我想删除值列下所有具有“ 0”的行。

service    value

abc         10
def          0
ghi          0
xyz          5

我希望我的数据框看起来像

service    value

abc         10
xyz          5

我尝试了以下

df = df[(df != 0).all(1)]



df = pd.DataFrame(list(result.items()),columns=['service', 'value'])
df = df[(df != 0).all(1)]

对于具有6-7行的小型Dataframe来说,它工作正常,但是在具有125行的另一个Dataframe中,出现以下错误。

非法指示

PS:我检查了“值”列下的所有值,这些都是数字。

1 个答案:

答案 0 :(得分:1)

您可以将drop函数与条件结合使用:

df = pd.DataFrame(
{'service': ['abc', 'def', 'ghi', 'xyz'],
'value': [10,0,0,5]})
df.drop(df[df.value==0].index)

出:

service value
0   abc 10
3   xyz 5