我有以下数据框列
>>> 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]
...
非常感谢您提前提供帮助
答案 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