Многочисленные выходы сотовой сети IPython

Я запускаю эту ячейку в ноутбуке IPython:

# salaries and teams are Pandas dataframe
salaries.head()
teams.head()

В результате я получаю только выходной файл teams, а не как salaries, так и teams. Если я просто запускаю salaries.head(), я получаю результат для фрейма данных salaries, но при запуске обоих операторов я просто вижу вывод teams.head(). Как я могу исправить это?

Ответ 1

Вы пробовали команду display?

from IPython.display import display
display(salaries.head())
display(teams.head())

Ответ 2

Более простой способ:

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].

Ответ 3

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)

Ответ 4

Обеспечить,

print salaries.head()
teams.head()