【问题标题】:Python Pandas: Use regex to replace strings with hyperlinkPython Pandas:使用正则表达式用超链接替换字符串
【发布时间】: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。

我该怎么做?

【问题讨论】:

    标签: python regex pandas replace hyperlink


    【解决方案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 
    

    【讨论】:

    • 感谢您的建议!但是,我没有让它工作:(
    猜你喜欢
    • 2018-10-05
    • 2021-12-05
    • 2022-11-07
    • 1970-01-01
    • 2015-02-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多