python - 熊猫数值出现在非数字系列中
问题描述
为什么即使在调用 str.strip 之后数值仍被视为非数值?
这是我的情况:
df['ID'] = df['ID'].str.strip()
id = df['ID']
indices = [ i for (i, v) in enumerate(id.str.isnumeric()) if v == False ]
non_numeric = id.filter(indices)
id.head(-5)
And this is the output of id.head(-5):
141 C536379
154 C536383
235 C536391
236 C536391
237 C536391
...
470612 576618
470614 576618
470616 576618
470618 576618
470673 576618
Name: ID, Length: 7892, dtype: object
为什么所有那些不以字母开头的数字仍在 non_numeric 数组中?
起初我认为这是由于前导空白,但后来我添加了 strip() 并没有任何改变。
编辑:我需要分析系列中的非数值,所以我试图提取它们。
解决方案
查看您的最新编辑,我相信这就是您正在尝试做的事情:
“编辑:我需要分析系列中的非数值,所以我试图提取它们。”
只看字符串,有很多方法。这是一个。用于pd.to_numeric()
创建系列s
并通过errors='coerce'
. 这将返回NaN
非数字数据的值。从那里将其作为过滤器传递给您的数据框,用于该NaN
系列的行,使用isnull()
:
s = pd.to_numeric(df['ID'], errors='coerce')
df = df[s.isnull()]
df
ID
141 C536379
154 C536383
235 C536391
236 C536391
237 C536391
推荐阅读
- javascript - 解决承诺后返回数组
- python - 在 Python3 中为 IF ELSE 条件语句的每个条件传递值给变量
- css - 如何不拉伸 flexbox 或网格项的自然文本高度(在文本上使用背景颜色)?
- android - 使用 Android Studio 时发生错误“类型参数绑定为 C in”
- javascript - 通过手动输入的 ID 在 JSON 数组中查找
- amazon-web-services - PUT/POST/DELETE:403 错误禁止 + AWS SAM 的 CORS 错误
- php - 获取特定用户的主题标签帖子
- c# - 使用 Sharp7 将布尔值写入 PLC
- python - CSV 中 defaultdict / 元组的 Python 列表
- java - 即使同步块获得重复值