我有一个这样的数据框 A B0 0.0 sales oi 90,901 1.0 9.002 2.0 get it here9993 3.0 sales for oi 90,904 4.0 this: 90,00,005 5.0 akjd : 90,000我想要这样的数据框 A B0 0.0 90901 1.0 92 2.0 9993 3.0 90904 4.0 9000005 5.0 90000
2 回答
函数式编程
TA贡献1807条经验 获得超9个赞
如果要删除所有不带点的非数字值,请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
守候你守候我
TA贡献1802条经验 获得超10个赞
您可以像这样使用正则表达式:
import re
re.sub("[^0-9]", "", "sales oi 90,90")
这将返回:
9090
使用它,您可以使用 lambda 函数简单地将其应用于您的数据帧:
df['B'] = df['B'].apply(lambda row: re.sub("[^0-9]", "", row))
添加回答
举报
0/150
提交
取消