[英]Remove strings and special characters from multiple columns
我想從多個列(包含nan
值)中刪除字符串和特殊字符。 我只希望數字存在。 下面是我的專欄之一。 任何幫助將不勝感激!
OTHER
0 $300.00
1 $850.00
2 $550.00
3 nan
4 $1,250.00
5 $81.00
預期結果:
OTHER
0 300.00
1 850.00
2 550.00
3
4 1250.00
5 81.00
要刪除 nan 你可以使用這個指令
df.fillna(0)
刪除字符 $ 你可以使用這個:
df[other] = df[other].replace({'$':''},regex=True)
print (df)
首先用空字符串填充NaN
值,然后通過regex
提取值,然后填充NaN
值,最后用空字符串替換逗號。
>>> (df['OTHER'].fillna('')
.astype(str)
.str.extract('(\d+(?:,\d+)?(?:\.\d+)?)', expand=False)
.fillna('')
.str.replace(',', ''))
0 300.00
1 850.00
2 550.00
3
4 1250.00
5 81.00
Name: OTHER, dtype: object
但是對於上述數據,以下也應該可以正常工作,即只取 digit 或 decimal point 的值.
:
>>>(df['OTHER']
.fillna('')
.astype(str)
.apply(lambda x: ''.join(i for i in x if i.isdigit() or i=='.')))
0 300.00
1 850.00
2 550.00
3
4 1250.00
5 81.00
Name: OTHER, dtype: object
要在多列上做同樣的事情,試試這個:
for col in df:
df[col] = df[col]....#rest of the code from any of above two method
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.