Показать таблицу данных, как таблицы в тетради оболочкой 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")