删除熊猫中的标点符号[重复]

Posted

技术标签:

【中文标题】删除熊猫中的标点符号[重复]【英文标题】:Remove punctuations in pandas [duplicate] 【发布时间】:2017-02-08 11:52:20 【问题描述】:
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。任何建议都会有所帮助。

【问题讨论】:

您想要一个具有相同字符串值但没有标点符号的新列?为什么? @JoeR 我正在对数据进行情感分析 【参考方案1】:

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

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

【讨论】:

@ Bob Haffner,谢谢你,但我将如何保留以前存在的空间?【参考方案2】:

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

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

【讨论】:

【参考方案3】:

我通过遍历 string.punctuation 解决了这个问题

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

您可以像以前一样调用该函数,它应该可以工作。

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

【讨论】:

以上是关于删除熊猫中的标点符号[重复]的主要内容,如果未能解决你的问题,请参考以下文章

删除彼此相邻的重复符号[重复]

从 Pandas DataFrame 列中删除特定符号(unicode)[重复]

删除熊猫数据框中“标签”列中出现数字后的空格

如何检查数组中的@(at),并在检查后删除此符号[重复]

如何从熊猫系列中的字符串中去除“$”符号?

从数据框中删除所有标点符号,除了一些字符[重复]