2016-04-06 15 views
1

pandas değiştirme işlevimdeki 'Thank you'/'thank u'/'thanks!'... ect tüm formlarını (küçük harf/büyük harf, kısa formlar ..) kaldırmak istiyorum.pandalar, ping işlevini yerine getirme işlevinde regex ekleyiniz

Şu anda çalıştığım bir şey değil ama bunu yapmanın daha verimli bir yolu var mı?

df.text_col.str.replace(thanks_to_delete, '', case=False) 

: yerine duyarsız vaka için aşağıdaki havasında kullanarak sonra

thanks_to_delete = '|'.join(['thanks', 'thank you']) 

ve:

df.text_col.replace(to_replace='Thank you',value='',inplace=True,regex=True) 
df.text_col.replace(to_replace='thank you',value='',inplace=True,regex=True) 
df.text_col.replace(to_replace='th(.+)u',value='',inplace=True,regex=True) 
            . 
            . 
+0

is büyük/küçük harf duyarlı olmayan için 'i' düzenleyicisini ayarlamanın bir yolu var mı? – Laurel

+0

pandas belgelerinde değil: http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.replace.html – jxn

+1

@jxn Bize 'kısa biçiminde düşündüğünüzün bir listesini verin ', aksi takdirde bu doğru olması çok zor olacak. –

cevap

0

İstediğin thank you tüm vakaları numaralandırılırken öneririm kurtulmak için Test:

df=pd.DataFrame({ 
    'text_col': ['Thank you very much for your patience', 
        'I would just want to thank you for your patience', 
        'Thanks for your patience'] 
       }) 

df.text_col.str.replace(thanks_to_delete, '', case=False) 
0    very much for your patience 
1 I would just want to for your patience 
2       for your patience 
Name: text_col, dtype: object