2016-09-21 7 views
2

文字列内のhtml構文を置き換える方法を見つけようとしています。私はcsvファイルがたくさんあるので、pandasがcsvに対処する素晴らしいツールであることがわかりました。pandasカラムのhtml構文/ asciiコードを置き換えます

場合によっては、文字列に埋め込まれたhtml構文を持つデータを受け取ります。たとえば、アドレス欄には、という125&#45128 downing stが表示されます。それは&#49だけでなく、&#39&ampとなり、'&です。

私はこのコードを実行しようとしましたが、私はそれは私がこのような事業名、住所、市、州などいくつかの列を取得

くれ
df = df.replace(r'[&#45]','-', regex=True) 

を適切なフォーマットを与えていないことを知っている - ので、私は、すべてのターゲットとしたいと思います列だけで、すべてのHTML構文を確認するためには削除されている/

データフレーム形式

Address 1     Company 
0 1st&#452st Avenue N   johnson &amp johnson 
1 243&#454800 Kingsway Ave cold &amp brew 
2 300 Hwy 7     coder&#39s club 

希望の形式

置き換え
Address 1     Company 
0 1st-2st Avenue N   johnson and johnson 
1 243-4800 Kingsway Ave  cold and brew 
2 300 Hwy 7     coder's club 

私はパンダの初心者ですが、私はこのツールを愛しています。ご協力いただきありがとうございます。

UPDATE:

[OK]を、私はこのdf = df.replace(r'[&#45]','-', regex=True)df = df.replace(r'&#45','-', regex=True)する必要があり、私が使用したコードの上に私のミスを発見しました。これは、そのhtml構文を置き換えます。しかし、私はまだこの問題のpythonic解決策を探したいと思います。

他のhtml構文を削除するには、このコードを実行すると便利です。

df = df.replace(r'&#45','-', regex=True).replace(r'&#39','', regex=True).replace(r'&amp','and', regex=True) 

このコード行にはクリーンな解決策がありますか?コメントに述べたようにだけ、ここに来て新しい人に答え、可能な解決策を残す

+0

感謝。私はリストで値を変更できると思います。たとえば 'df.replace([r '&#45'、r '&#39']、[' - '、 '']、regex = True)'ですが、わかりません。 [docs](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.replace.html) – gabra

+1

@gabraを確認してください。編集に関するご意見ありがとうございます。はい、最初のコメントで提供されたコードは、魅力的に働いていました。これは私が必要とするもので、より良いPythonコーダーにしようとしています。本当にありがとう! – medev21

答えて

1

は、次のとおりです。あなたの答えを編集するための

df.replace([r'&#45', r'&#39', r'&amp'], ['-', '', 'and'], regex=True) 

または

df.replace({'&#45':'-', r'&#39':'', '&amp':'and'}, regex=True) 
関連する問題