我有一个像这样的datframe
A B
0 0.0 sales oi 90,90
1 1.0 9.00
2 2.0 get it here999
3 3.0 sales for oi 90,90
4 4.0 this: 90,00,00
5 5.0 akjd : 90,000
我想要这样的数据框
A B
0 0.0 9090
1 1.0 9
2 2.0 999
3 3.0 9090
4 4.0 900000
5 5.0 90000
答案 0 :(得分:0)
如果要删除所有不带点的非数字值,请将replace
与正则表达式[^\d.]
一起用于非十进制数字或.
的任何字符:
df['B'] = df['B'].str.replace(r'[^\d.]+', '')
print (df)
A B
0 0.0 9090
1 1.0 9.00
2 2.0 999
3 3.0 9090
4 4.0 900000
5 5.0 90000
答案 1 :(得分:0)
您可以使用如下正则表达式:
import re
re.sub("[^0-9]", "", "sales oi 90,90")
这将返回:
9090
使用此方法,您只需使用lambda函数即可将其应用于数据框:
df['B'] = df['B'].apply(lambda row: re.sub("[^0-9]", "", row))