Как отображать полную (не усеченную) информацию о dataframe в html при преобразовании из pandas dataframe в html?
Я преобразовал фреймворк pandas в вывод html с помощью функции DataFrame.to_html
. Когда я сохраняю это в отдельный файл html, файл показывает усеченный вывод.
Например, в столбце TEXT
df.head(1)
отобразит
Фильм был отличным усилием...
вместо
Фильм был отличным усилием в деконструкции сложных социальных настроений, которые преобладали в этот период.
Это исполнение отлично в случае формата с поддержкой экрана массивного pandas данных, но мне нужен html файл, который будет отображать полные табличные данные, содержащиеся в dataframe, то есть что-то, что покажет последнее текстовый элемент, а не прежний фрагмент текста.
Как я смогу показать полные, не усеченные текстовые данные для каждого элемента в столбце TEXT в html-версии информации? Я бы предположил, что в таблице html придется отображать длинные ячейки для отображения полных данных, но, насколько я понимаю, только параметры ширины столбца могут быть переданы в функцию DataFrame.to_html
.
Ответы
Ответ 1
Установите для параметра 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]()
Ответ 2
pd.set_option('display.max_columns', None)
id
(второй аргумент) может полностью отображать столбцы.
Ответ 3
В то время как 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')