如果我有一个数据帧并且想要删除任何行,其中一列中的值不是整数,我该怎么做?
另一种方法是,如果值不在0-2的范围内,则删除行,但由于我不知道如何做其中任何一个,我希望有些可能.
这是我尝试过的但是它不能确定原因:
df = df[(df['entrytype'] != 0) | (df['entrytype'] !=1) | (df['entrytype'] != 2)].all(1)
Run Code Online (Sandbox Code Playgroud)
我建议有两种方法:
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
Run Code Online (Sandbox Code Playgroud)
如果值的范围与您说的那样受限制,那么使用isin将是最快的方法:
In [216]:
df[df['entrytype'].isin([0,1,2])]
Out[216]:
entrytype
0 0
1 1
4 2
Run Code Online (Sandbox Code Playgroud)
否则我们可以转换为str然后调用 .isdigit()
In [215]:
df[df['entrytype'].apply(lambda x: str(x).isdigit())]
Out[215]:
entrytype
0 0
1 1
4 2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7380 次 |
| 最近记录: |