如何删除数据帧中一列的特殊字符?

2024-06-11 08:56:45 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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



Tags: or数据redfstringbytes数字df1
2条回答

您还可以使用.str.extract()保留所需的零件(vs replace,它消除了您不需要的零件):

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

我将尝试在通缉列上使用带有apply函数的lambda

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

相关问题 更多 >