Wstaw link do tabeli pand
Chciałbym wstawić link (do strony internetowej) wewnątrz tabeli pand, więc gdy jest wyświetlany w notatniku ipython, mogę nacisnąć link.
Próbowałem:
In [1]: import pandas as pd
In [2]: df = pd.DataFrame(range(5), columns=['a'])
In [3]: df['b'] = df['a'].apply(lambda x: 'http://example.com/{0}'.format(x))
In [4]: df
Out[4]:
a b
0 0 http://example.com/0
1 1 http://example.com/1
2 2 http://example.com/2
3 3 http://example.com/3
4 4 http://example.com/4
ale adres URL jest wyświetlany tylko jako tekst.
Próbowałem również użyć obiektu HTML ipython:
In [5]: from IPython.display import HTML
In [6]: df['b'] = df['a'].apply(lambda x:HTML('http://example.com/{0}'.format(x)))
In [7]: df
Out[7]:
a b
0 0 <IPython.core.display.HTML object at 0x0481E530>
1 1 <IPython.core.display.HTML object at 0x0481E770>
2 2 <IPython.core.display.HTML object at 0x0481E7B0>
3 3 <IPython.core.display.HTML object at 0x0481E810>
4 4 <IPython.core.display.HTML object at 0x0481EA70>
ale wyświetli tylko repr obiektu.
Jakieś inne pomysły?
EDYCJA: alk otrzymał właściwą odpowiedź, chciałem tylko dodać, że szerokość komórki jest domyślnie ograniczona, a długi kod html zostanie obcięty, tj .:
<a href="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa0">xxx</a>
stanie się to:
<a href="aaaaaaaaaaaaaaaaaaaaaa...
i nie będzie wyświetlany poprawnie. (nawet jeśli tekst xxx jest krótki i może zmieścić się w komórce)
Pominąłem go, ustawiając:
pd.set_printoptions(max_colwidth=-1)