删除熊猫中的标点符号[重复]
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)
【讨论】:
以上是关于删除熊猫中的标点符号[重复]的主要内容,如果未能解决你的问题,请参考以下文章