修剪 pandas 数据框不同列中相似字符串中的空格

Trimming white spaces in similar strings in different columns of pandas dataframe

我的问题很简单,我在提问之前尝试了所有可能的 SO 答案。

我有一个数据框

{'article_journal': {0: 'lipids', 1: 'nature reviews  cardiology', 2: 'clinical research
 cardiology supplements', 3: 'jacc  basic to translational science', 4: 'clinical research 
 cardiology supplements', 5: 'diabetes  obesity   metabolism', 6: 'journal'}, 'Title': {0: 
 'chemistry physics lipids', 1: 'nature reviews cardiology', 2: 'clinical research 
 cardiology', 3: 'jacc basic to translational science', 4: 'clinical research cardiology', 5: 
 'diabetes obesity   metabolism', 6: 'journal'}}

几乎所有字符串中都有多余的空格。我在 Excel.

中检查过

我只打印值相同的那些

df[df.apply(pd.Series.nunique, axis = 1) == 1]

并且只收到一行,这是我为测试目的自己创建的

    article_journal Title
6   journal         journal

如何trim相似字符串中的空格?

预期输出

    article_journal                     Title
1   nature reviews cardiology           nature reviews cardiology
3   jacc basic to translational science jacc basic to translational science
5   diabetes obesity metabolism         diabetes obesity metabolism
6   journal                             journal

我用 str.strip() 尝试了所有可能的问题,但没有任何效果。列是对象。我错过了什么?谢谢!

您可以在整个数据框中将双 space 替换为单个 space,并且 trim 前导和尾随 space(s)(如果存在):

df = df.replace('\s+',' ', regex=True) # remove double spacing in strings
df = df.replace('^\s+|\s+$','', regex=True) # remove leading or trailing spaces