2016-07-25 5 views
0

私はさまざまな会社名のデータフレームを持っており、それらに対してgroupby関数を実行する必要があります。しかし、会社名はしばしば法律事務所であり、さまざまな方法で提示することができます(「Akin Gump」、「Akin、Gump」、「Akin、Gump」、「Akin Gump Strauss Hauer & Feld LLP」、 "Akin Gump Strauss Hauer Feld"、あなたはアイデアを得る)。条件付きのPython正規表現のストライピング句読点

"Akin、Gump"( "AkinGump"になる)や "Akin Gump Strauss Hauer & Feld LLP"のように、元のテキストのスペースが間違っている場合を除いて、現在のコードはほとんどの場合うまくいきます。それは "Akin Gump Strauss Hauer Feld"(HauerとFeldの間の2つのスペース)になります。

table = string.maketrans("", "") 
company_name = company_name.translate(table, string.punctuation) 
stopwords = ['LLC', 'INC', 'PLLC', 'LP', 'LTD', 'PLC', 'LLP'] 
company_name = ' '.join(filter(lambda x: x not in stopwords, company_name.split())) 

私は正規表現の解決策があると仮定しますが、それはまったくうまくいきません。

答えて

0

私は、彼らがコードの残りの部分で問題が発生しないように、問題のある文字を修正するために正規表現との最初のパススルーを作ると思います:

import re 

re.sub(" *[&,] *"," ", company_name) #Add any other special characters you might want 

これは、特殊文字とすべてのスペースに置き換えられますそれらを1つのスペースで囲みます。つまり、コードの残りの部分を問題なく通過することができます。