搜索pandas列并返回包含任何(一个或多个)非数字字符的所有元素(行)

时间:2018-03-08 14:30:20

标签: regex pandas search

似乎非常直截了当。该列通常包含数字,但由于某些原因,其中一些包含非数字字符。我想找到所有这些。我正在使用此代码:

df_other_values.total_count.str.contains('[^0-9]')

但是我收到以下错误:

AttributeError: Can only use .str accessor with string values, which use 
np.object_ dtype in pandas

所以我尝试了这个:

df_other_values = df_other.total_countvalues
df_other_values.total_count.str.contains('[^0-9]')

但收到以下错误:

AttributeError: 'DataFrame' object has no attribute 'total_countvalues'

所以不要再进一步走下兔子洞,我认为必须有办法做到这一点,而不必将我的数据帧更改为np.object。请指教。

感谢。

1 个答案:

答案 0 :(得分:0)

我认为您需要先astype投放到string,然后按boolean indexing进行过滤:

df1 = df[df_other_values.total_count.astype(str).str.contains('[^0-9]')]

使用isnumeric的替代解决方案:

df1 = df[~df_other_values.total_count.astype(str).str.isnumeric()]