我有一个句子列表,如:
['不,第2个主要的第4个十字架,uas布局,靠近ganesha temple / bsnl exchange,sanjaynagar,bangalore',
'grihalakshmi apartments flat,southend road basavangudi bangalore -560004。 ad adiyar ananda bhavan靠近南端c',
'srinivas pg acomudation; opp to cosmos mall brooke field',
'皇家棕榈第二十字架,l b sastry nagar bangalore',
'bmp ho name grija \ krishnappa garden bagamane .technologi park cv ramanagar']
我需要删除除了和/之外的所有标点符号。我使用string.punctuation删除所有标点符号
def punc(x):
predicate = lambda y:y not in string.punctuation
out = filter(predicate,x)
return out
data = data.apply(punc)
这删除了所有内容..想要删除选定的..plz帮助
当它是数据帧的一部分时,我使用了.apply()。现在我已将其转换为列表。所以请推荐一种处理列表对象中特殊标点符号的技术。
答案 0 :(得分:3)
试试这个
def punc(x):
predicate = lambda y:y not in ''.join(c for c in string.punctuation if c not in ',/')
out = filter(predicate,x)
return out
此外,不推荐使用apply()。
当介词在字符串中时删除。
def punc(x):
predicate = lambda y:y not in ''.join(c for c in string.punctuation if c not in './')
prepositions = ['a', 'in'] #define by yourself
if any(p in x.split() for p in prepositions):
return filter(predicate,x)
return x