Сначала, если необходимо, выберите только строковые столбцы (очевидно, 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)