Python Pandas:使用正则表达式用超链接替换字符串
Posted
技术标签:
【中文标题】Python Pandas:使用正则表达式用超链接替换字符串【英文标题】:Python Pandas: Use regex to replace strings with hyperlink 【发布时间】:2017-08-07 19:17:30 【问题描述】:初学者的问题。
我正在使用 BS4 抓取房屋广告,并使用 Pandas 分析后续数据。
我有一个包含几列的 DataFrame。这个问题只考虑其中一列,看起来像,
district | ... |
----------------
A | ... |
B | ... |
C | ... |
... | ... |
我有一个与地区相关的链接列表。例如A区,链接看起来像www.site.com/city/district-A/
。
我想用<a href="www.site.com/city/district-A/">A</a>
替换列中的每个地区名称(例如“A”)。最好我使用正则表达式进行替换,因为我有各种各样的地区名称和地区链接。
为了更难,区名是非ASCII,而链接是ASCII。
我该怎么做?
【问题讨论】:
【参考方案1】:看来你需要apply
format
:
df = pd.DataFrame('district':['A','B','C'])
df['url'] = df.district.apply('<a href="www.site.com/city/district-0/">0</a>'.format)
print (df)
district url
0 A <a href="www.site.com/city/district-A/">A</a>
1 B <a href="www.site.com/city/district-B/">B</a>
2 C <a href="www.site.com/city/district-C/">C</a>
【讨论】:
谢谢!我花了一段时间才开始使用它——我没有使用字典。 所以,我已经很接近了。不过,您知道将/district-A/
中的A
转换为ASCII 字符的方法吗?我需要链接中的A
为ASCII,但链接名称A
为非ASCII。现在两者都是非 ASCII - 名称是好的,但链接不起作用......
现在我离线了,只能在手机上使用,但可以使用一些转换器从非 ASCII 转换为 ASCII 吗?我从来没有以这种方式转换过一些文本,所以很难帮助你。 :(【参考方案2】:
为什么不
for idx, row in df.iterrows():
A = row['column']
new = '<a href="www.site.com/city/district-A/">A</a>'.format(A=A)
df[idx, 'column'] = new
【讨论】:
感谢您的建议!但是,我没有让它工作:(以上是关于Python Pandas:使用正则表达式用超链接替换字符串的主要内容,如果未能解决你的问题,请参考以下文章
尝试在 Python / pandas 中使用正则表达式获取子字符串
Python Pandas 和正则表达式使用字典替换 Dataframe 中的项目
用于各种日期的 Python/Pandas 正则表达式 [重复]
Python - Pandas - 用正则表达式替换字符串| (要么)