我有一個(gè)這樣的數(shù)據(jù)框 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我想要這樣的數(shù)據(jù)框 A B0 0.0 90901 1.0 92 2.0 9993 3.0 90904 4.0 9000005 5.0 90000
2 回答

函數(shù)式編程
TA貢獻(xiàn)1807條經(jīng)驗(yàn) 獲得超9個(gè)贊
如果要?jiǎng)h除所有不帶點(diǎn)的非數(shù)字值,請replace與正則表達(dá)式[^\d.]一起使用,如果不是十進(jìn)制數(shù)字或.:
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貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超10個(gè)贊
您可以像這樣使用正則表達(dá)式:
import re
re.sub("[^0-9]", "", "sales oi 90,90")
這將返回:
9090
使用它,您可以使用 lambda 函數(shù)簡單地將其應(yīng)用于您的數(shù)據(jù)幀:
df['B'] = df['B'].apply(lambda row: re.sub("[^0-9]", "", row))
添加回答
舉報(bào)
0/150
提交
取消