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

2024-09-28 22:22:53 发布

您现在位置:Python中文网/ 问答频道 /正文

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

另一种方法是,如果值不在0-2范围内,则删除行,但由于我不确定如何执行这两种操作,所以我希望有人可以这样做。

这是我试过但没成功的原因不确定:

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

Tags: 数据方法df原因整数allentrytype
1条回答
网友
1楼 · 发布于 2024-09-28 22:22:53

我建议有两种方法:

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

相关问题 更多 >