2024-09-28 22:22:53 发布
网友
如果我有一个数据帧,并且想删除其中一列中的值不是整数的任何行,我该如何做?
另一种方法是,如果值不在0-2范围内,则删除行,但由于我不确定如何执行这两种操作,所以我希望有人可以这样做。
这是我试过但没成功的原因不确定:
df = df[(df['entrytype'] != 0) | (df['entrytype'] !=1) | (df['entrytype'] != 2)].all(1)
我建议有两种方法:
In [212]: df = pd.DataFrame({'entrytype':[0,1,np.NaN, 'asdas',2]}) df Out[212]: entrytype 0 0 1 1 2 NaN 3 asdas 4 2
如果值的范围如您所说受到限制,那么使用isin将是最快的方法:
isin
In [216]: df[df['entrytype'].isin([0,1,2])] Out[216]: entrytype 0 0 1 1 4 2
否则我们可以强制转换为str,然后调用.isdigit()
.isdigit()
In [215]: df[df['entrytype'].apply(lambda x: str(x).isdigit())] Out[215]: entrytype 0 0 1 1 4 2
我建议有两种方法:
如果值的范围如您所说受到限制,那么使用
isin
将是最快的方法:否则我们可以强制转换为str,然后调用
.isdigit()
相关问题 更多 >
编程相关推荐