簡體   English   中英

從多列中刪除字符串和特殊字符

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM