为了账号安全,请及时绑定邮箱和手机立即绑定

pandas 数值显示在非数字系列中

pandas 数值显示在非数字系列中

幕布斯6054654 2023-12-12 10:04:49
为什么即使在调用 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       C536379154       C536383235       C536391236       C536391237       C536391           ...   470612     576618470614     576618470616     576618470618     576618470673     576618Name: ID, Length: 7892, dtype: object为什么所有这些不以字母开头的数字仍然存在于 non_numeric 数组中?起初我以为这是由于前导空格造成的,但后来我添加了 strip() 并且没有任何改变。编辑:我需要分析系列中的非数值,所以我试图提取它们。
查看完整描述

1 回答

?
慕神8447489

TA贡献1780条经验 获得超1个赞

看看您最新的编辑,我相信这就是您想要做的:


“编辑:我需要分析系列中的非数值,因此我正在尝试提取它们。”


如果只看字符串,有很多方法。这是一个。用于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


查看完整回答
反对 回复 2023-12-12
  • 1 回答
  • 0 关注
  • 99 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信