python - 提取 Pandas 列中除数字以外的字符
问题描述
尝试删除数据框列中除数字之外的所有字符,这些字符具有对象类型和年龄的混合值,例如:'44', '60', 'July 89', 'August 42'
这是我使用的方法extract()
:
data['age'] = data.age.str.extract('(\d+)')
由于某种原因,该列的输出是 NaN 值。我尝试了不同的方法(例如,使用replace()
函数),但仍然是同一个问题。你能给我一些提示来解决这个问题吗?谢谢!
解决方案
正则表达式方法仅适用于字符串。看来您的数据是混合类型的,包括数字和字符串。
首先将所有数据转换为字符串类型是有意义的,然后您可以继续提取数字:
data['age'] = data['age'].astype(str).str.extract(r'(\d+)')
推荐阅读
- javascript - 通过ajax调用插入模式不起作用
- php - 未知类别错误
- php - 如何在 Vue.js 中以数组形式更新表中的数据
- gatsby - Gatsby build 总是抛出 Input file is missing or of an unsupported image format
- mysql - group and order in mysql
- mysql - 使用 dblink 从 oracle 插入 MySQL 表
- java - 如何在 Tomcat 8 中设置 Java 运行时参数
- c# - c# HttpWebRequest 获取响应字符串
- angular - 调用验证器并从 focusout 上的自定义指令返回有效/无效为真/假:Angular 5
- python - 我想从用户那里导入值,用于这个 t 测试