it-swarm.com.ru

Pandas to_html () усекает содержимое строки

У меня есть объект Python Pandas DataFrame, содержащий текстовые данные. Моя проблема в том, что когда я использую функцию to_html() , она обрезает строки в выводе.

Например:

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

Выходные данные усекаются в 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>

Есть связанный вопрос о SO, но он использует заполнители и функциональность поиска/замены для постобработки HTML, чего я хотел бы избежать:

Есть ли более простое решение этой проблемы? Я не смог найти ничего связанного с документация .

61
Timo

То, что вы видите, это pandas, усекающее вывод только для отображения.

По умолчанию значение max_colwidth равно 50, что вы и видите.

Вы можете установить это значение по своему желанию или установить -1, что фактически отключает это:

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

Хотя я бы посоветовал против этого, было бы лучше установить его так, чтобы его можно было легко отобразить в вашей консоли или ipython.

Список параметров можно найти здесь: http://pandas.pydata.org/pandas-docs/stable/options.html

86
EdChum

кажется, что pd.set_option('display.max_colwidth', -1) действительно единственный вариант. Чтобы предотвратить необратимые глобальные изменения представления данных в консоли, вы можете сохранить предыдущий параметр в переменной и восстановить его сразу после использования следующим образом:

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