Pandas 删除任何值为0的行

Pandas 删除任何值为0的行,pandas,Pandas,我有一个数据框架,它有两列“服务”和“价值”。我想删除所有在value列下有“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(resu

我有一个数据框架,它有两列“服务”和“价值”。我想删除所有在value列下有“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行的小数据帧,它可以正常工作,但在另一个具有125行的数据帧中,我得到以下错误

非法指令

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

您可以结合条件使用该函数:

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

dataframe是否与字典键数存在依赖关系。经过一点调试,我发现当我的密钥数超过31时,我看到了错误。这是我的密码:我不确定我是否理解你的问题,但不是没有依赖性。每个dictionnary键对应于我的dfI中的一个新列。我尝试了以下代码,其中dictionary有31个键,工作正常,但当我使用dictionary 32个键运行相同的代码时,我得到的结果是:“非法指令”将pandas导入为pd pd.set_选项('display.max_rows',None)df=pd.DataFrame(list(result.items()),columns=所有(1)结果={a':1,'b':2,'c':3,'d':4,'e':0,'f':2,'g':0,'h':1,'i':10,'k':11,'l':19,'m':21,'n':23,'o':43,'p':35,'q':43,'r':4,'s':2,'t':0,'u':67,'v':21,'w':14,'x':0,'y':0,'z':12,'12,'m':21,'n':23,'o':43,'p':35,'q':43,'d':23,'asq':23,'14,'14,'d':14,'为了进行测试,您可以使用此字典并重现问题,请在此字典上再添加一个键值。Yok发现了问题,但不确定其根本原因。在RHEL6平台上,这似乎很好,而在RHEL5平台上,这一点很好。无论何时,我在平台上使用相同的python版本,还是从公共位置使用python离子(不使用本地安装)。