Как создать гиперссылку в новом столбце DataFrame?

Есть DataFrame с двумя столбцами: заголовком статьи и ссылкой на нее.

Как можно получить третий столбец, где текстом будет заголовок статьи, но будет иметь гиперссылку на статью?


Ответы (2 шт):

Автор решения: MarianD

Пусть df такое:

              name               link
0  Total Commander    www.ghisler.com
1           Pandas  pandas.pydata.org

Команда:

df["hypertext"] = '<a href="' + df.link + '">' + df.name + '</a>'

Результат:

              name               link                                     hypertext
0  Total Commander    www.ghisler.com  <a href="www.ghisler.com">Total Commander</a>
1           Pandas  pandas.pydata.org         <a href="pandas.pydata.org">Pandas</a>

Примечание:

Теперь, когда вы хотите изобразить таблицу с работающими гиперссылками в Jupyter Notebook, напишите

from IPython.display import HTML
HTML(df.to_html(escape=False))

как можете видеть и с тем, что вы получите:

введите сюда описание изображения


Или можете сделать

print(df.to_html(escape=False))

получая HTML код:

<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>name</th>
      <th>link</th>
      <th>hypertext</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>Total Commander</td>
      <td>www.ghisler.com</td>
      <td><a href="www.ghisler.com">Total Commander</a></td>
    </tr>
    <tr>
      <th>1</th>
      <td>Pandas</td>
      <td>pandas.pydata.org</td>
      <td><a href="pandas.pydata.org">Pandas</a></td>
    </tr>
  </tbody>
</table>

который вы можете прямо запустить (клик на «Выполнить код» выше) или вставить в ваш HTML файл.

→ Ссылка
Автор решения: MaxU

Пример данных позаимствован у @MarianD:

df["hypertext"] = df["link"].map('<a href="{}">'.format) + df["name"] + "</a>"

Результат:

In [130]: df
Out[130]:
              name               link                                      hypertext
0  Total Commander    www.ghisler.com  <a href="www.ghisler.com">Total Commander</a>
1           Pandas  pandas.pydata.org         <a href="pandas.pydata.org">Pandas</a>
→ Ссылка