Domanda

Mi piacerebbe inserire un collegamento (in una pagina Web) all'interno di una tabella Pandas, quindi quando viene visualizzato in Ippython Notebook, potrei premere il link.

Ho provato quanto segue:

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
.

Ma l'URL è appena visualizzato come testo.

Ho anche provato a usare IPYTHON HTML Object:

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>
.

Ma mostrerà solo il rept dell'oggetto.

Qualche altra idea?

Modifica: Alko ha ottenuto la risposta giusta, voleva solo aggiungere che la larghezza della cella è limitata per impostazione predefinita e il codice HTML lungo verrà troncato, vale a dire:

<a href="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa0">xxx</a>
.

diventerà questo:

<a href="aaaaaaaaaaaaaaaaaaaaaa...
.

e non verrà visualizzato correttamente. (Anche se il testo xxx è corto e può adattarsi alla cella)

L'ho bypassato impostando:

pd.set_printoptions(max_colwidth=-1)
.

È stato utile?

Soluzione

Suppongo che tu debba rappresentare un oggetto intero Pandas come Oggetto HTML , cioè

In [1]: from IPython.display import HTML

In [2]: df = pd.DataFrame(list(range(5)), columns=['a'])

In [3]: df['a'] = df['a'].apply(lambda x: '<a href="http://example.com/{0}">link</a>'.format(x))

In [4]: HTML(df.to_html(escape=False))
.

Scusa, ora non ha a portata di mano Ippython e non può controllare se l'uscita è corretta.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top