我有一个包含两列“服务”和“值”的数据框。我想删除值列下所有具有“ 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:我检查了“值”列下的所有值,这些都是数字。
答案 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