如果pandas数据框架中某一列的值不是整数,则删除该行[英] Drop rows if value in a specific column is not an integer in pandas dataframe

本文是小编为大家收集整理的关于如果pandas数据框架中某一列的值不是整数,则删除该行的处理方法,想解了如果pandas数据框架中某一列的值不是整数,则删除该行的问题怎么解决?如果pandas数据框架中某一列的值不是整数,则删除该行问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

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

如果值不在 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 将是最快的方法:

In [216]:

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

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

In [215]:

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

本文地址:https://www.itbaoku.cn/post/1728169.html