在熊猫python中删除文本中的'\ n'

时间:2018-09-10 08:51:46

标签: regex string python-2.7 pandas

以下代码是我用来删除['text']列中\ n的当前代码:

df = pd.read_csv('file1.csv')

df['text'].replace('\s+', ' ', regex=True, inplace=True) # remove extra whitespace
df['text'].replace('\n',' ', regex=True) # remove \n in text

header = ["text", "word_length", "author"]

df_out = df.to_csv('sn_file1.csv', columns = header, sep=',', encoding='utf-8')

我也从建议中尝试过

df['text'].replace('\n', '')
df['text'] = df['text'].str.replace('\n', '').str.replace('\s+', ' ').str.strip()
  

输出:'多么聪明! \ n就像他也对房地产交易一无所知...'

删除空格的代码正在运行。但不能删除\ n。在这件事上有人可以帮助我吗?谢谢。

我也尝试根据此链接的建议进行解决removing newlines from messy strings in pandas dataframe cells?,但仍然无法正常工作。

已解决:

df['text'].replace(r'\s+|\\n', ' ', regex=True, inplace=True) 

1 个答案:

答案 0 :(得分:1)

考虑到要将更改应用于“texts”列,请选择该列作为

df['text']

然后,为了实现这一点,可以使用 pandas.DataFrame.replace

这让我们可以传递正则表达式 regex=True,它将两个列表中的两个字符串都解释为正则表达式(而不是直接匹配它们)。

接上 @Wiktor Stribiżew suggestion,以下将完成工作

df['text'] = df['text'].replace(r'\s+|\\n', ' ', regex=True) 

This 正则表达式语法参考可能会有所帮助。