Панды удаляют все отдельные символы из фрейма данных - PullRequest
1 голос
/ 11 октября 2019

Как использовать pandas replace (или любую другую функцию) для удаления всех отдельных символов в кадре данных, чтобы:

abc   87-2    EF.2  
ABC      a       -
EF8      8  
.        B

Стало:

 abc  87-2    EF.2  
 ABC            
 EF8         

1 Ответ

2 голосов
/ 11 октября 2019

Сначала, если необходимо, выберите только строковые столбцы (очевидно, object s - строки), получите длину и установите пустое значение на mask:

cols = df.select_dtypes(object).columns

df[cols] = df[cols].mask(df.applymap(len) == 1, '')
print (df)
   abc 87-2 EF.2
0  ABC          
1  EF8          
2         

Если необходимо заменить значения также в подстроках:

f = lambda x: ' '.join(y for y in x.split() if len(y) != 1)
df[cols] = df[cols].applymap(f) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...