Показать таблицу данных, как таблицы в тетради оболочкой IPython
Я использую культуры Когда я делаю это:
df
Я получаю красивую таблицу с ячейками. Однако, если я это сделаю:
df1
df2
он не печатает первую красивую таблицу. Если я попробую это:
print df1
print df2
он выводит таблицу в другом формате, который разливает столбцы и делает вывод очень высоким.
есть ли способ заставить его распечатать красивые таблицы для обоих наборов данных?
4 ответа:
вам понадобится
HTML()илиdisplay()функции от модуля дисплея IPython:from IPython.display import display, HTML # Assuming that dataframes df1 and df2 are already defined: print "Dataframe 1:" display(df1) print "Dataframe 2:" display(HTML(df2.to_html()))обратите внимание, что если вы просто
print df1.to_html()вы получите необработанный, неупорядоченный HTML.вы также можете импортировать из
IPython.core.displayС тем же эффектом
публикация комментария @joris в качестве ответа:
display (df) (with from IPython.дисплей импорт экран), или печатать ДФ.to_html()
или в код :
from IPython.display import display display(df) # OR print df.to_html()
этот ответ основан на 2-й подсказке из этого сообщения в блоге:28 Jupyter Notebook советы, приемы и ярлыки
Вы можете добавить следующий код в верхней части вашего ноутбука
from IPython.core.interactiveshell import InteractiveShell InteractiveShell.ast_node_interactivity = "all"это говорит Jupyter для печати результатов для любой переменной или оператора на его собственной строке. Таким образом, вы можете выполнить ячейку, содержащую только
df1 df2и он будет "распечатать красивые таблицы для обоих наборов данных".
Кажется, вы можете просто отобразить оба dfs, используя запятую между ними на дисплее. Я заметил это на некоторых ноутбуках на github. Этот код от ноутбука Джейк VanderPlas по.
class display(object): """Display HTML representation of multiple objects""" template = """<div style="float: left; padding: 10px;"> <p style='font-family:"Courier New", Courier, monospace'>{0}</p>{1} </div>""" def __init__(self, *args): self.args = args def _repr_html_(self): return '\n'.join(self.template.format(a, eval(a)._repr_html_()) for a in self.args) def __repr__(self): return '\n\n'.join(a + '\n' + repr(eval(a)) for a in self.args)
display('df', "df2")