删除熊猫中的标点符号

时间:2016-09-30 01:39:05

标签: python string pandas replace

code: df['review'].head()
        index         review
output: 0      These flannel wipes are OK, but in my opinion

我想从数据框的列中删除标点符号并创建一个新列。

code: import string 
      def remove_punctuations(text):
          return text.translate(None,string.punctuation)

      df["new_column"] = df['review'].apply(remove_punctuations)

Error:
  return text.translate(None,string.punctuation)
  AttributeError: 'float' object has no attribute 'translate'

我正在使用python 2.7。任何建议都会有所帮助。

3 个答案:

答案 0 :(得分:18)

使用Pandas str.replace和正则表达式:

df["new_column"] = df['review'].str.replace('[^\w\s]','')

答案 1 :(得分:8)

您可以使用string模块的标点符号列表构建正则表达式:

df['review'].str.replace('[{}]'.format(string.punctuation), '')

答案 2 :(得分:3)

我通过循环遍历string.punctuation

解决了这个问题
<h3 id="test">Title: {{title}}</h3>

您可以按照您的方式调用该功能,它应该可以正常工作。

def remove_punctuations(text):
    for punctuation in string.punctuation:
        text = text.replace(punctuation, '')
    return text