Вызов функции sympy дважды в Jupyter, но выводит только последний вызов (Python 2.7) [duplicate]

a data.table решение:

> dt <- data.table(y = c(NA, 2, 2, NA, NA, 3, NA, 4, NA, NA))
> dt[, y_forward_fill := y[1], .(cumsum(!is.na(y)))]
> dt
     y y_forward_fill
 1: NA             NA
 2:  2              2
 3:  2              2
 4: NA              2
 5: NA              2
 6:  3              3
 7: NA              3
 8:  4              4
 9: NA              4
10: NA              4

этот подход мог бы работать и с первичными нулями заполнения:

> dt <- data.table(y = c(0, 2, -2, 0, 0, 3, 0, -4, 0, 0))
> dt[, y_forward_fill := y[1], .(cumsum(y != 0))]
> dt
     y y_forward_fill
 1:  0              0
 2:  2              2
 3: -2             -2
 4:  0             -2
 5:  0             -2
 6:  3              3
 7:  0              3
 8: -4             -4
 9:  0             -4
10:  0             -4

этот метод очень полезен для данных по шкале и где вы хотите выполнить форвардную заливку по группам (группам), что тривиально с data.table. просто добавьте группу (ы) в предложение by до логики cumsum.

36
задан Mike Müller 21 December 2015 в 18:14
поделиться

4 ответа

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

from IPython.display import display
display(salaries.head())
display(teams.head())
62
ответ дан tglaria 19 August 2018 в 10:45
поделиться
  • 1
    Из документов: «Так как IPython 5.4 и 6.1 display() автоматически становятся доступными пользователю без импорта. & Quot; – Georgy 22 May 2018 в 15:33

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

from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"

Сохраняет необходимость повторного ввода «Display»

Скажите, что ячейка содержит это:

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

So то же самое, но без части Out[n].

38
ответ дан Aru Singh 19 August 2018 в 10:45
поделиться
  • 1
    Это новое? Я не помню, чтобы увидеть этот вариант пару лет назад. – tglaria 21 April 2017 в 14:19
  • 2
    Я даже не вижу его в обновленной документации: ipython.readthedocs.io/en/stable/api/generated/… Но находится в терминале & quot; Параметры IPython: ipython.readthedocs.io/en/stable/config/options/terminal.html – tglaria 21 April 2017 в 14:40
  • 3
    О, мужик, я бы хотел ответить на это. Я помню, что я видел это по другому вопросу несколько месяцев назад (я бы хотел, чтобы я мог его исправить), и он отлично работал для меня, поэтому я сохранил его в своем заднем кармане. – Aru Singh 22 April 2017 в 17:55
  • 4
    Было бы неплохо добавить, как это будет выглядеть, будет ли отображаться для каждой и каждой строки? – matanster 25 May 2018 в 15:45
  • 5
    @matanster Я могу добавить это к основному ответу. Но оно отображает каждое выражение при назначении того же «Out [x]: & quot; каждому. См. Ответ для большей ясности – Aru Singh 17 July 2018 в 22:00

IPython Notebook показывает только последнее возвращаемое значение в ячейке. Самое простое решение для вашего дела - использовать две ячейки.

Если вам действительно нужна только одна ячейка, вы можете сделать взломать вот так:

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)
3
ответ дан Mike Müller 19 August 2018 в 10:45
поделиться

Предоставить,

print salaries.head()
teams.head()
3
ответ дан WoodChopper 19 August 2018 в 10:45
поделиться
  • 1
    Хороший результат, но вывод print salaries.head() не очень хорошо отформатирован. – Lokesh 21 December 2015 в 16:18
Другие вопросы по тегам:

Похожие вопросы: