【发布时间】:2017-01-30 08:24:38
【问题描述】:
我正在尝试找到一种方法来替换字符串中的 html 语法。我得到了很多 csv 文件,所以我发现 pandas 是处理 csv 的绝佳工具。
有时我会收到在字符串中嵌入了 html 语法的数据,例如在地址列中,我看到 125&#45128 downing st,即 125-128 downing st。不仅是&#49,我还有&#39和&amp,分别是'和&。
我尝试编写此代码,但我知道它没有给我正确的格式
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
我是 pandas 的新手,但到目前为止我很喜欢这个工具。感谢您的帮助。
更新:
好的,我在我使用的代码上发现了我的错误,这个df = df.replace(r'[&#45]','-', regex=True)应该是df = df.replace(r'&#45','-', 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),但我不确定。检查docs -
@gabra 没问题,感谢有关编辑的建议。是的,第一条评论中提供的代码就像一个魅力,这就是我需要的,努力成为一个更好的 python 编码器。非常感谢!