首页 > 解决方案 > 提取 Pandas 列中除数字以外的字符

问题描述

尝试删除数据框列中除数字之外的所有字符,这些字符具有对象类型和年龄的混合值,例如:'44', '60', 'July 89', 'August 42'

这是我使用的方法extract()

data['age'] = data.age.str.extract('(\d+)')

由于某种原因,该列的输出是 NaN 值。我尝试了不同的方法(例如,使用replace()函数),但仍然是同一个问题。你能给我一些提示来解决这个问题吗?谢谢!

标签: pythonregexpandas

解决方案


正则表达式方法仅适用于字符串。看来您的数据是混合类型的,包括数字和字符串。

首先将所有数据转换为字符串类型是有意义的,然后您可以继续提取数字:

data['age'] = data['age'].astype(str).str.extract(r'(\d+)')

推荐阅读