2014-02-07 59 views
0

我有這樣的句子列表:
[「沒有,第2主4跨,UAS佈局,靠近象頭神寺/ BSNL交換,sanjaynagar,班加羅爾」,
'grihalakshmi公寓平,southend路basavangudi班加羅爾-560004。靠近南端C「
‘SRINIVAS PG acomudation奧普adiyar阿難總統府;奧普到宇宙商場布魯克場’,
‘皇家棕櫚第二跨,磅沙斯特里訥格爾班加羅爾’,
」 BMP豪名grija \ krishnappa花園bagamane .technologi公園CV拉馬納加拉姆']刪除所選的標點符號

我需要刪除所有標點,除了和/ ..我用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

是想刪除還是替換? –

+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 

此外,申請()已過時。

當介詞在字符串中時刪除。

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 
+0

謝謝..如果我添加一些條件..如只在介詞存在時刪除標點符號? –

+0

以上代碼代碼工作:( –

+0

@劍編輯。 - – afkfurion