Визуализация информационного кадра pandas в формате HTML с тем же стилем, что и в Jupyter Notebook - PullRequest
0 голосов
/ 30 августа 2018

Я хотел бы визуализировать кадр данных pandas в HTML так же, как это делает Блокнот Jupyter, т. Е. Со всеми наворотами, такими как приятный внешний вид, подсветка столбцов и сортировка столбцов при нажатии.

enter image description here

pandas.to_html выводит только простую таблицу HTML и требует ручного оформления и т. Д.

Доступен ли код рендеринга данных, используемый jupyter, как отдельный модуль, который можно использовать в любом веб-приложении?

Кроме того, развязаны ли ресурсы, такие как файлы js / css, от jupyter, чтобы их можно было легко использовать повторно?

1 Ответ

0 голосов
/ 28 января 2019

Некоторые моменты, которые нужно уточнить в первую очередь:

  • Pandas не имеет ничего общего со стилем, и стилизация происходит с всеми таблицами HTML, а не только с фреймами данных. Это легко проверить, отобразив таблицу HTML в Jupyter (пример кода в конце ответа).
  • Похоже, что ваш Jupyter или одно из установленных расширений выполняет «дополнительные» стили, стиль по умолчанию не включает сортировку столбцов или подсветку столбцов. Есть только нечетные / четные строки и подсветка строк (проверено на исходном коде Jupyter и моей локальной установке Jupyter). Это означает, что мой ответ может включать не все стили, которые вы хотите.

Ответ

Доступен ли код рендеринга данных, используемый jupyter, как отдельный модуль, который можно использовать в любом веб-приложении?

Не совсем отдельный модуль, но все форматы и стили таблиц, похоже, привязаны к rendered_html классу . Дважды проверил это, проверив блокнот HTML в Firefox.
Вы можете напрямую использовать файл .less, указанный выше, или скопировать необходимые стили в ваш HTML.

Кроме того, развязаны ли ресурсы, такие как файлы js / css, от jupyter, чтобы их можно было легко использовать повторно?

Как и любой хорошо разработанный веб-проект (и фактически любой программный проект), пакеты и модули хорошо разделены. Это означает, что вы можете повторно использовать большой объем кода в своем проекте с минимальными усилиями. Вы можете найти большинство .less файлов стилей в исходном коде Jupyter здесь .


Пример проверки того, происходит ли стилизация для всех таблиц HTML:

from IPython.display import HTML

HTML('''<table>
  <thead><tr><th></th><th>a</th><th>b</th></tr></thead>
  <tbody>
    <tr><th>0</th><td>1</td><td>3</td></tr>
    <tr><th>1</th><td>2</td><td>4</td></tr>
  </tbody>
</table>''')
...