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)