Остановить содержимое ярлыка ноутбука jupyter в pandas вывод таблицы html
Параметр pandas max_colwidth
определяет, сколько символов будет включено в репрезентацию блока данных:
import string, random
import pandas as pd
df = pd.DataFrame([''.join(random.choice(string.ascii_lowercase + ' ') for j in range(1000)) for i in range(4)])
pd.options.display.max_colwidth = 10
print(df)
дает
0
0 lmftge...
1 pqttqb...
2 wi wgy...
3 ow dip...
и
pd.options.display.max_colwidth = 30
print(df)
дает
0
0 lmftgenioerszvgzfaxorzciow...
1 pqttqbqqe pykgguxnjsspbcti...
2 wi wgybtgcbxkobrwnaxpxwsjc...
3 ow dippaiamvvcofvousieckko...
И вы можете установить pd.options.display.max_colwidth = 0
, чтобы полностью удалить предел. До сих пор хорошо!
Но если фрейм данных отображается в HTML внутри записной книжки, ноутбук переносит таблицу столбца в ширину дисплея независимо от этого параметра:
![wrapped table]()
Есть ли способ избежать этого, т.е. чтобы столбец таблицы HTML отображался так широко, как это необходимо, чтобы соответствовать каждой строке в одной строке?
В более общем плане, можно ли контролировать ширину столбцов таблицы HTML в выходе ноутбука независимо от количества символов в выводе pandas?
Ответы
Ответ 1
Если вы создадите файл: ~/.jupyter/custom$ atom custom.css
, а затем поместите его в него:
.dataframe td {
white-space: nowrap;
}
Затем он заставит ячейку отображать одну строку, но затем вы получите таблицу прокрутки.
![введите описание изображения здесь]()
Если вы хотите, чтобы он не прокручивался, установите:
div.output_subarea {
overflow-x: inherit;
}
и тогда он будет таким же широким, как и должно быть:
![введите описание изображения здесь]()
Это не очень красиво, но я уверен, что вы можете его убрать, если это необходимо.
Я нашел этот очень полезным. Вам также потребуется перезагрузить ноутбук после того, как вы сначала создадите файл css для его регистрации, но с этого момента вы можете просто обновить страницу, чтобы увидеть, как изменения в css вступают в силу.
Это был ноутбук, который я тестировал.
Ответ 2
Основываясь на ответе Бена, но без необходимости заходить в пользовательские css файлы, которые по-разному работают в juptyter lab.
Просто поместите это в ячейку и запустите:
%%html
<style>
.dataframe td {
white-space: nowrap;
}
</style>