【问题标题】:How can I remove special characters for just one column in a data frame?如何删除数据框中仅一列的特殊字符?
【发布时间】:2020-08-26 14:19:24
【问题描述】:

我正在尝试清理我的数据框,但我只想删除一列的特殊字符。 (请参考下图)

df1

| A       |  B   | C    |
|---------|----––|––----|
| Ags(1)  |  5   |  4   |
| Cdmx(2) |  6   |  6   |
|Leon(4)  |  90  |  45  |
|

我要删除的只是 A

列的数字和特殊字符

这是我尝试过的:

df = re.sub('[^A-Za-z0-9]+', '', df1["A"])
>> expected string or bytes-like object


【问题讨论】:

  • 使用,df1.A.str.replace('[^A-Za-z0-9]+', '')

标签: python pandas dataframe python-re


【解决方案1】:

我会尝试在所需列上使用带有 apply 函数的 lambda。

df1["A"] = df1["A"].apply(lambda x: re.sub('[^A-Za-z0-9]+', '', x))

【讨论】:

    【解决方案2】:

    您也可以使用.str.extract() 来保留您想要的部分(与替换相比,它会消除您不想要的部分):

    from io import StringIO
    import pandas as pd
    
    data = ''' A         B    C    
     Ags(1)    5     4   
     Cdmx(2)   6     6   
    Leon(4)    90    45  
    '''
    df = pd.read_csv(StringIO(data), sep='\s\s+', engine='python')
    
    df['A'] = df['A'].str.extract(r'(\w+)', expand=False)
    print(df)
    
          A   B   C
    0   Ags   5   4
    1  Cdmx   6   6
    2  Leon  90  45
    

    【讨论】:

      猜你喜欢
      • 2020-06-30
      • 1970-01-01
      • 1970-01-01
      • 2018-04-16
      • 2023-03-25
      • 1970-01-01
      • 2022-01-25
      • 2018-02-02
      相关资源
      最近更新 更多