这是数据框的一部分:
df2:
**headache** **Sweating**
C0018681 / Headache / Sign or Symptom C0038990 / Sweating / Finding
C0233408 / Disorientated in time / Finding C0037195 / Sinus headache / Finding
我将使用以下函数删除所有列中的空格:
def codeCleaning (df, column):
df[column].replace('\s*/\s*', '/', regex=True, inplace = True)
df[column] = df[column].str.strip()
df[column] =df[column].str.lower()
return df
我创建了一个列标题列表,如下所示
column=list(df2.columns.values)
然后我尝试将该函数应用于所有列,但它不起作用。这是我的 代码:
df2 = codeCleaning (df2,column )
我如何解决?
答案 0 :(得分:2)
df.applymap(lambda x: '/'.join(map(str.lower, map(str.strip, x.split('/')))))
headache Sweating
0 c0018681/headache/sign or symptom c0038990/sweating/finding
1 c0233408/disorientated in time/finding c0037195/sinus headache/finding
要解决混合类型,您可以转换为str
df.astype(str).applymap(lambda x: '/'.join(map(str.lower, map(str.strip, x.split('/')))))