Python替换数据框中的非数字字符

时间:2018-07-25 10:46:55

标签: python regex python-3.x dataframe

我有以下数据框列

>>> df2['Age]

1    25
2    35
3    48 y
4    34 yea
5    29
...

我只想保留数字,就这样替换df2 ['Age]中的值

1    25
2    35
3    48
4    34
5    29
...

我的代码不起作用:

df2.Age.replace('^.*','^[0-9]*[0-9]',regex=True,inplace=True)

这是结果

 1    ^[0-9]*[0-9]
 2    ^[0-9]*[0-9]
 3    ^[0-9]*[0-9]
 4    ^[0-9]*[0-9]
 5    ^[0-9]*[0-9]
 ...

非常感谢您提前提供帮助

2 个答案:

答案 0 :(得分:2)

使用\D+将非数字替换为空字符串:

df2.Age.replace('\D+','',regex=True,inplace=True)
print (df2)
  Age
1  25
2  35
3  48
4  34
5  29

答案 1 :(得分:1)

使用str.extract

例如:

import pandas as pd

df = pd.DataFrame({"Age": ['25', '35', '48 y', '34 yea', '29']})
df["Age"] = df["Age"].str.extract(r"(\d+)", expand=False)
print(df)

输出:

  Age
0  25
1  35
2  48
3  34
4  29