Ответ 1
Вы пробовали команду display
?
from IPython.display import display
display(salaries.head())
display(teams.head())
Я запускаю эту ячейку в ноутбуке IPython:
# salaries and teams are Pandas dataframe
salaries.head()
teams.head()
В результате я получаю только выходной файл teams
, а не как salaries
, так и teams
. Если я просто запускаю salaries.head()
, я получаю результат для фрейма данных salaries
, но при запуске обоих операторов я просто вижу вывод teams.head()
. Как я могу исправить это?
Вы пробовали команду display
?
from IPython.display import display
display(salaries.head())
display(teams.head())
Более простой способ:
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"
Это избавляет вас от необходимости многократно набирать "Дисплей"
Скажем, клетка содержит это:
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"
a = 1
b = 2
a
b
Тогда вывод будет:
Out[1]: 1
Out[1]: 2
Если мы используем IPython.display.display
:
from IPython.display import display
a = 1
b = 2
display(a)
display(b)
Выход:
1
2
То же самое, но без части Out[n]
.
IPython Notebook показывает только последнее возвращаемое значение в ячейке. Самое простое решение для вашего случая - использовать две ячейки.
Если вам действительно нужна только одна ячейка, вы можете сделать hack следующим образом:
class A:
def _repr_html_(self):
return salaries.head()._repr_html_() + '</br>' + teams.head()._repr_html_()
A()
Если вам это нужно часто, сделайте его функцией:
def show_two_heads(df1, df2, n=5):
class A:
def _repr_html_(self):
return df1.head(n)._repr_html_() + '</br>' + df2.head(n)._repr_html_()
return A()
Использование:
show_two_heads(salaries, teams)
Версия для более чем двух головок:
def show_many_heads(*dfs, n=5):
class A:
def _repr_html_(self):
return '</br>'.join(df.head(n)._repr_html_() for df in dfs)
return A()
Использование:
show_many_heads(salaries, teams, df1, df2)
Обеспечить,
print salaries.head()
teams.head()