我試圖找到一種方法來替換字符串中的html語法。我收到很多csv文件,所以我發現熊貓是處理csv的一個很棒的工具。替換pandas列中的html語法/ ascii代碼
有時我收到的數據中嵌入了html語法的字符串,例如在地址欄中,我看到125끈 downing st
,它是125-128 downing st
。這不僅是1
,我還得到'
和&
,這是'
和&
。
我試圖做到這一點的代碼,但我知道這不會給我正確的格式
df = df.replace(r'[-]','-', regex=True)
我得到幾個欄目,如企業名稱,地址,城市,州 - 所以我想針對所有列只是爲了確保所有的HTML語法被刪除/更換
數據幀格式
Address 1 Company
0 1stDŽst Avenue N johnson & johnson
1 243񯂐 Kingsway Ave cold & brew
2 300 Hwy 7 coder's 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:
好吧,我發現我在我使用的代碼錯誤,這df = df.replace(r'[-]','-', regex=True)
應該df = df.replace(r'-','-', regex=True)
;這將取代html語法。不過,我仍然想找到解決這個問題的pythonic解決方案。
我很想做這個代碼,以刪除其他的html語法。
df = df.replace(r'-','-', regex=True).replace(r''','', regex=True).replace(r'&','and', regex=True)
有沒有乾淨的解決方案這行代碼?
感謝編輯你的答案。我認爲你可以通過列表更改值。例如'df.replace([r'&#45',r'&#39'],[' - ',''],regex = True)',但我不確定。檢查[文檔](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.replace.html) – gabra
@ gabra沒有問題,並感謝關於編輯的建議。是的,第一條評論中提供的代碼就像一個魅力,這正是我需要的,試圖成爲一個更好的Python編碼器。非常感謝! – medev21