tutorial notebook español python pandas ipython-notebook

notebook - pandas python tutorial español pdf



Inserta un enlace dentro de una mesa de pandas (1)

Supongo que debes representar el objeto pandas completo como un objeto html , eso es

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

Lo sentimos, ahora no tenemos IPython a mano, y no podemos verificar si la salida es correcta.

Me gustaría insertar un enlace (a una página web) dentro de una tabla de pandas, para que cuando se muestre en el cuaderno ipython, pueda presionar el enlace.

Intenté lo siguiente:

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

pero la URL solo se muestra como texto.

También intenté usar el objeto HTML de 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>

pero solo mostrará la repr del objeto.

¿Alguna otra idea?

EDITAR: alko obtuvo la respuesta correcta, solo quería agregar que el ancho de la celda está limitado por defecto, y el código html largo se truncará, es decir:

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

se convertirá en esto:

<a href="aaaaaaaaaaaaaaaaaaaaaa...

y no se mostrará correctamente. (aunque el texto xxx es corto y puede caber en la celda)

Lo he pasado por alto:

pd.set_printoptions(max_colwidth=-1)