过滤掉Python Datafram中的字符串值

2024-06-17 08:35:08 发布

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

我用的是Python熊猫

例如,我有一个dataframe,如下所示

index, name, acct_no, city
1, alex, 10011, huntington
2, rider, 100AB, charleston
3, daniel, A1009, bonn
4, rice, AAAA1, new york
5, ricardo, 12121, london

从这个数据集中,我只想得到 在帐户编号列中没有任何字符串的记录

所以,我想从上面的数据集中得到以下结果。在下面的结果中,acct\u no列的值中没有字符串

index, name, acct_no, city
1, alex, 10011, huntington
5, ricardo, 12121, london

哪个代码会给我这样的结果


Tags: 数据no字符串namecitydataframeindexlondon
2条回答

可以检查str.contains

df1=df[~df.acct_no.str.contains('[a-zA-Z]')]
df1
Out[119]: 
   index      name acct_no         city
0      1      alex   10011   huntington
4      5   ricardo   12121       london

或者使用to_numeric并按notna过滤

df[pd.to_numeric(df.acct_no,errors='coerce').notna()]

另一种解决方案可能是使用pd.to\ numeric,它尝试将值转换为数字。当它失败时,我们可以让它返回nan(通过指定errors='improve'),然后删除所有nan值:

df.acct_no = pd.to_numeric(df.acct_no, errors='coerce')
df.dropna()

相关问题 更多 >