我有一个pandas.Series
{},其中包含所有文本:
我想删除所有标点符号,因此我执行了以下操作:
for i in range(len(des)):
for ch in punc:
if ch in des[i]:
des[i] = des[i].replace(ch, "", inplace=True)
然而,我得到了一个"TypeError: replace() takes no keyword arguments"
我怎样才能修好它?还有,有没有更有效的方法删除一系列文本中所有行的标点符号
Tags:
首先,在内部for循环中有一个缩进错误。 其次,考虑到适当的缩进,问题背后的问题是dataframe和String的.replace()方法具有不同的函数签名。您要做的是,使用dataframe的replace()方法,但使用的是字符串的replace()方法。你可以在这里检查:https://stackoverflow.com/a/50843478/9851541 或者,您也可以检查How to use the replace() method with keyword arguments to replace empty strings以了解您的问题。希望这有帮助
您可以创建要替换的项的字典,并在pandas.DataFrame.replace中使用它
inplace=True
的返回为None
(即,使用就地替换时无需重新分配)我对你的问题的解释可能不正确,但如果你在
punc
中循环浏览标点符号列表,并且你想在保留其余文本的同时删除所有标点符号,我认为你可以做一些简单的事情,如以下所示:您可能知道,
replace
是用一系列字符替换另一系列字符的标准python字符串方法。例如:返回
'azc'
当您使用
Series.str.replace()
时,您使用的是相同的字符串替换方法,但现在它将应用于序列中的每个元素。另外,所有字符串方法都可以使用相同的语法Series.str.some_string_method()
以元素方式应用于一个系列相关问题 更多 >
编程相关推荐