微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – 如果特定列中的值不是pandas dataframe中的整数,则删除行

如果我有一个数据帧并且想要删除任何行,其中一列中的值不是整数,我该怎么做?

另一种方法是,如果值不在0-2的范围内,则删除行,但由于我不知道如何做其中任何一个,我希望有些可能.

这是我尝试过的但是它不能确定原因:

@H_404_8@df = df[(df['entrytype'] != 0) | (df['entrytype'] !=1) | (df['entrytype'] != 2)].all(1)

解决方法:

我建议有两种方法

@H_404_8@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将是最快的方法

@H_404_8@In [216]: df[df['entrytype'].isin([0,1,2])] Out[216]: entrytype 0 0 1 1 4 2

否则我们可以转换为str然后调用.isdigit()

@H_404_8@In [215]: df[df['entrytype'].apply(lambda x: str(x).isdigit())] Out[215]: entrytype 0 0 1 1 4 2

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐