我正在使用Python Pandas。
例如,我有一个如下数据框
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_no 列中没有任何字符串的记录。
因此,我想从上述数据集中获得以下结果。在以下结果中, acct_no 列的值中没有字符串。
index, name, acct_no, city
1, alex, 10011, huntington
5, ricardo, 12121, london
哪个代码会给我这样的结果?
答案 0 :(得分: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()]
答案 1 :(得分:0)
另一种解决方案可能是使用pd.to_numeric,它尝试将值转换为数字。当失败时,我们可以让它返回nan(通过指定errors ='coerce'),然后删除所有nan值:
df.acct_no = pd.to_numeric(df.acct_no, errors='coerce')
df.dropna()