it-swarm.com.ru

Как отобразить полную (не усеченную) информацию о фрейме данных в html при преобразовании из pandas dataframe в html?

Я преобразовал фрейм данных pandas в вывод html, используя функцию DataFrame.to_html. Когда я сохраняю это в отдельный HTML-файл, файл показывает усеченный вывод.

Например, в моей колонке ТЕКСТ,

df.head(1) покажет

Фильм был отличным усилием ...

вместо

Фильм был отличной попыткой разобраться в сложных социальных настроениях, преобладавших в этот период.

Это представление хорошо в случае удобного для экрана формата массивного pandas dataframe, но мне нужен html-файл, который покажет полные табличные данные, содержащиеся в dataframe, то есть что-то, что покажет последний текстовый элемент, а не первый текстовый фрагмент.

Как я могу показать полные, не усеченные текстовые данные для каждого элемента в моем столбце TEXT в html-версии информации? Я думаю, что в html-таблице должны отображаться длинные ячейки для отображения полных данных, но, насколько я понимаю, в функцию DataFrame.to_html можно передавать только параметры ширины столбца.

117
Amy

Установите для параметра display.max_colwidth значение -1:

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

set_option docs

Например, в iPython мы видим, что информация усекается до 50 символов. Все, что находится в избытке, имеет форму эллипса:

enter image description here

Если вы установите опцию display.max_colwidth, информация будет отображаться полностью:

enter image description here

258
behzad.nouri
pd.set_option('display.max_columns', None)  

id (второй аргумент) может полностью отображать столбцы.

69
user7579768

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

Для моих целей я написал небольшую вспомогательную функцию для полной печати больших фреймов данных, не затрагивая остальную часть кода, она также переформатирует числа с плавающей запятой и устанавливает ширину виртуального дисплея. Вы можете принять его для своих случаев использования.

def print_full(x):
    pd.set_option('display.max_rows', len(x))
    pd.set_option('display.max_columns', None)
    pd.set_option('display.width', 2000)
    pd.set_option('display.float_format', '{:20,.2f}'.format)
    pd.set_option('display.max_colwidth', -1)
    print(x)
    pd.reset_option('display.max_rows')
    pd.reset_option('display.max_columns')
    pd.reset_option('display.width')
    pd.reset_option('display.float_format')
    pd.reset_option('display.max_colwidth')
34
Karl Adler