web-dev-qa-db-fra.com

Pandas to_html () tronque le contenu de la chaîne

J'ai un Python Pandas DataFrame objet contenant des données textuelles. Mon problème est que lorsque j'utilise to_html() , elle tronque les chaînes dans la sortie.

Par exemple:

import pandas
df = pandas.DataFrame({'text': ['Lorem ipsum dolor sit amet, consectetur adipiscing elit.']})
print (df.to_html())

La sortie est tronquée à 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>

Il y a une question connexe sur SO, mais elle utilise des espaces réservés et une fonctionnalité de recherche/remplacement pour post-traiter le HTML, ce que j'aimerais éviter:

Existe-t-il une solution plus simple à ce problème? Je n'ai rien trouvé de similaire dans la documentation .

68
Timo

Ce que vous voyez est pandas tronquer la sortie à des fins d'affichage uniquement.

Le défaut max_colwidth la valeur est 50, ce que vous voyez.

Vous pouvez définir cette valeur sur tout ce que vous désirez ou vous pouvez la définir sur -1, ce qui désactive effectivement ceci:

pd.set_option('display.max_colwidth', -1)

Bien que je déconseille cela, il serait préférable de le définir sur quelque chose qui peut être affiché facilement dans votre console ou ipython.

Une liste des options peut être trouvée ici: http://pandas.pydata.org/pandas-docs/stable/options.html

94
EdChum

il semble que pd.set_option('display.max_colwidth', -1) soit en effet la seule option. Pour éviter des changements globaux irréversibles de la façon dont les cadres de données sont présentés dans la console, vous pouvez enregistrer le paramètre précédent dans une variable et le restaurer immédiatement après l'utilisation, comme suit:

    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)
17
Boris Gorelik