如何使用熊猫替换(或任何其他函数)删除数据框中的所有单个字符,以便:
abc 87-2 EF.2
ABC a -
EF8 8
. B
成为:
abc 87-2 EF.2
ABC
EF8
答案 0 :(得分:2)
首先,如有必要,仅选择字符串列(显然object
是字符串),获取长度并通过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)