Pandas style `.render ()` - Различные значения до и после отображения - PullRequest
1 голос
/ 03 мая 2020

Я пытаюсь отобразить несколько pandas кадров данных по горизонтали в записной книжке Jupyter, но сталкиваюсь с ситуацией, когда стиль HTML не отформатирован правильно.

У меня есть следующий фрагмент кода:

import numpy as np
import pandas as pd
from IPython.display import display, HTML

def display_multi_table(table_list, with_display):
    if with_display:
      for t in table_list: display(t)
    return HTML(
        '<table><tr style="background-color:white;">' + 
        ''.join(['<td style="height:300px;width:300px">' + table.render() + '</td>' for table in table_list]) +
        '</tr></table>'
    )

d = dict([(f"column_{i}", np.random.rand(5)) for i in range(3)])
tables = [pd.DataFrame(d).style.set_caption("Title") for i in range(3)]

Следующий вызов:

display_multi_table(tables, False)

Результат этого вывода: enter image description here

Следующий вызов:

display_multi_table(tables, True)

Результаты в этом выводе: enter image description here

Моя цель: добиться вывода в нижней части второго снимка экрана, не вызывая display.

Вещи, которые я пробовал / проверял:

  • Если я не стилизирую pandas фрейм данных, и использую просто вызов .to_html() на фрейме данных вместо вызова .render() в стайлере эта проблема не существует. Однако мне нужно, чтобы это работало с стилем данных.
  • Я подтвердил, что значение, возвращаемое table.render() до и после вызова display, действительно отличается.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...