Правильный синтаксис присваивания переменной

Необходимо обновленную таблицу присвоить новой переменной. Можно в одну строку, а как сделать, чтобы было в несколько строк. В скобках calls также выдает ошибку.

calls = 
( 
    df_calls
    .groupby(['user_id', 'month'])
    ['duration']
    .agg(['count', 'sum'])
    .reset_index()
)

Ответы (2 шт):

Автор решения: CrazyElf

Как-то так должно работать. Продолжение кода на следующей строке в питоне осуществляется с помощью бэкслэша:

calls = \
    df_calls \
    .groupby(['user_id', 'month']) \
    ['duration'] \
    .agg(['count', 'sum']) \
    .reset_index()

Возможно, где-то \ можно и не писать, но это нужно проверять.

→ Ссылка
Автор решения: MarianD

Правило такое: Когда разделить команду на 2 или более строк, надо Питон предупредить, что команда еще не завершилась и будет продолжаться на следующей строке:

  • знаком \ как последним в текущей строке,
  • но этого не надо сделать когда продолжение строки следует неявно
    • из отсутствия (пока) заключающей (т.е. правой) круглой скобки,
    • из отсутствия (пока) заключающей (т.е. правой) квадратной скобки,
    • из отсутствия (пока) заключающей (т.е. правой) фигурной скобки.

Пример:

calls = (
    df_calls
    .groupby(['user_id', 'month'])
    ['duration']
    .agg(['count', 'sum'])
    .reset_index()
    )

Не надо (но возможно) писать ни одного \, потому что всё время ждется правая круглая скобка - к первой левой скобке в первой строке.


См. рекомендацию

Предпочтительный способ переноса длинных строк является использование подразумеваемых продолжений строк Python внутри круглых, квадратных и фигурных скобок. Длинные строки могут быть разбиты на несколько строк, обернутые в скобки. Это предпочтительнее использования обратной косой черты для продолжения строки.

в части Максимальная длина строки в документе PEP 8 - руководство по написанию кода на Python.

→ Ссылка