代码之家  ›  专栏  ›  技术社区  ›  manosubron

如何创建一个函数来删除Python中用于功能工程的特殊字符?

  •  -1
  • manosubron  · 技术社区  · 5 年前

    我想创建一个函数,从pandas数据帧中删除特殊字符,同时传递一个参数来保留所需的字符。

    def strip_characters(c, req_char = ''):
        spec_chars = ["!",'"',"#","%","&","'","(",")","*","+",",","-",".","/",":",";","<","=",">","?","@","[","\\","]","^","_","`","{","|","}","~","–"]
    
        new_spec = spec_chars.remove(req_char)
        for char in spec_chars:
            c = c.str.replace(char, ' ')
        return c
    
    
    df['col'] = df['col'].apply(strip_characters,',')  # passing a comma to retain the character
    
    # df['col'] = ['Dining Room', 'Pre-War', 'Laundry in Building', '&Lobby']
    
    1 回复  |  直到 5 年前
        1
  •  0
  •   sushanth    5 年前

    试试这个,

    import pandas as pd
    
    df = pd.DataFrame({'col':['Dining Room', 'Pre-War', 'Laundry in Building', '&Lobby']})
    
    # ([^) means match anything but word character
    # "[^\w+|,]" to exclude specific character's from being replaced
    
    df['col'].str.replace("[^\w+]"," ")
    
    

    Ouput

    0            Dining Room
    1                Pre War
    2    Laundry in Building
    3                  Lobby