Tengo un DataFrame
objeto Python Pandas que contiene datos textuales. Mi problema es que cuando uso la to_html()
función, trunca las cadenas en la salida.
Por ejemplo:
import pandas
df = pandas.DataFrame({'text': ['Lorem ipsum dolor sit amet, consectetur adipiscing elit.']})
print (df.to_html())
La salida se trunca en adapis...
<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>text</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td> Lorem ipsum dolor sit amet, consectetur adipis...</td>
</tr>
</tbody>
</table>
Hay una pregunta relacionada en SO, pero usa marcadores de posición y funcionalidad de búsqueda / reemplazo para posprocesar el HTML, lo que me gustaría evitar:
¿Existe una solución más sencilla para este problema? No pude encontrar nada relacionado con la documentación .
pd.set_option('display.max_colwidth', -1)
y luego imprima el html, debería encontrar que muestra el texto completo, esto no tiene nada que ver con el truncamiento de los datos reales, solo una configuración de visualizaciónRespuestas:
Lo que está viendo son pandas truncando la salida solo con fines de visualización.
El valor por defecto
max_colwidth
valor es 50, que es lo que está viendo.Puede establecer este valor en lo que desee o puede establecerlo en -1, lo que efectivamente desactiva esto:
pd.set_option('display.max_colwidth', -1)
Aunque desaconsejaría esto, sería mejor configurarlo en algo que se pueda mostrar fácilmente en su consola o ipython.
Puede encontrar una lista de las opciones aquí: http://pandas.pydata.org/pandas-docs/stable/options.html
fuente
True
. Seguro que parece quepandas
está truncando el valor de salida, no solo la pantalla.parece que de
pd.set_option('display.max_colwidth', -1)
hecho es la única opción. Para evitar cambios globales irreversibles de cómo se presentan los marcos de datos en la consola, puede guardar la configuración anterior en una variable y restaurarla inmediatamente después del uso, de la siguiente manera:old_width = pd.get_option('display.max_colwidth') pd.set_option('display.max_colwidth', -1) open('some_file.html', 'w').write(some_data.to_html()) pd.set_option('display.max_colwidth', old_width)
fuente
with pd.option_context('display.max_colwidth', -1): output_html = df.to_html()