Сохранение изменеённых данных после закрытия
Анализирую данные на Jupyter Notebook v.5.7.8, импортирую данные из CSV файла в DataFrame с помощью функции pd.read_csv . После этого, несколькими функциями удаляю пустые, лишние и ошибочные данные. Потом сохраняю и закрываю Jupyter. Как сделать, чтобы DataFrame, который хранит обработанные данные, сохранялся внутри файла .ipynb после закрытия Jupyter? Это необходимо для того, чтобы не импортировать данные каждый раз в DataFrame, а уже работать с ними при новом открытии.
Отслеживать
51.6k 201 201 золотой знак 63 63 серебряных знака 245 245 бронзовых знаков
задан 4 окт 2019 в 17:06
77 12 12 бронзовых знаков
Вам в любом случае придется сохранять измененные данные куда-то. Либо в другой csv-файл, либо через pickle, либо через HDF5 — то есть, все равно в файл. stackoverflow.com/questions/17098654/…
4 окт 2019 в 18:51
Большое спасибо за ответ. Я надеялся на чудо :-))
4 окт 2019 в 19:11
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Можно использовать очень простой трюк — сохранять обработанные данные в новый файл и проверять в начале — если существует файл с обработанными данными, то открывать его, пропуская предварительную обработку, а в противном случае обработать и сохранить обработанные данные. Таким образом данные будут обработаны только один раз.
import os import pandas as pd fn = r"/path/to/data.csv" fn_stage1 = r"/path/to/data_stage1.parquet" if os.path.exist(fn_stage1): df = pd.read_parquet(fn_stage1) else: df = pd.read_csv(fn) # process data here. df.to_parquet(fn_stage1)
Как и для чего экспортировать красивые отчеты из Jupyter Notebook в PDF
Если вы специалист по анализу данных и вам нужно представить отчет для заказчика, если вы ищете работу и не знаете, как оформить тестовое задание так, чтобы на вас обратили внимание, если у вас много учебных проектов, связанных с аналитикой и визуализацией данных, то сегодняшний пост будет вам очень и очень полезен. Дело в том, что смотреть на чужой код в Jupyter Notebook бывает проблематично, ведь результат часто теряется между множеством строк кода с подготовкой данных, импортом нужных библиотек и серией попыток реализовать ту или иную идею. Именно поэтому такой метод, как экспорт результатов в PDF-файл в формате LaTeX — это отличный вариант для итоговой визуализации, который сэкономит время и будет выглядеть презентабельно. В научных кругах статьи и отчеты очень часто оформляются именно с использованием LaTeX, поскольку он имеет ряд преимуществ:
- Математические уравнения и формулы выглядят аккуратнее.
- Библиография создается автоматически, на основе всех использованных в документе ссылок.
- Автор может сосредоточиться на содержании, а не на внешнем виде документа, так как верстка текста и других данных происходит автоматически с помощью указания необходимых параметров в коде.
Сегодня мы подробно расскажем о том, как научиться экспортировать вот такие красивые отчеты из Jupyter Notebook в PDF с использованием LaTeX.

Установка LaTeX
Самый важный момент в формировании отчета из Jupyter Notebook на Python — это его экспорт в финальный файл. Для этого применяется одна библиотека — nbconvert — которая конвертирует ваш ноутбук в любой удобный формат документа: pdf (как в нашем случае), html, latex или другой. Эту библиотеку нужно не просто установить, а провести некоторую процедуру по предустановке нескольких других пакетов: Pandoc, TeX и Chromium. По ссылке на библиотеку весь процесс описан очень подробно для каждого программного обеспечения, поэтому подробно мы на нем останавливаться не будем.
Как только вы завершили все предварительные шаги, нужно установить и импортировать библиотеку в ваш Jupyter Notebook.
!pip install nbconvert import nbconvert
Экспорт таблиц в Markdown формат
Обычно, таблицы не представляют в отчетах, поскольку их бывает трудно быстро прочесть, но иногда все-таки необходимо добавить небольшую таблицу в итоговый документ. Для того, чтобы таблица выглядела аккуратно, нужно представить ее в Markdown формате. Это можно сделать вручную, но если в таблице много данных, то лучше придумать более удобный метод. Мы предлагаем использовать следующую простую функцию pandas_df_to_markdown_table(), которая преобразует любой датафрейм в markdown-table. Единственный нюанс: после преобразования исчезают строчные индексы, потому, если они важны (как в нашем примере), то стоит записать их в переменную в первой колонке датафрейма.
data_g = px.data.gapminder() summary = round(data_g.describe(),2) summary.insert(0, 'metric', summary.index) # Функция для преобразования dataframe в Markdown Table def pandas_df_to_markdown_table(df): from IPython.display import Markdown, display fmt = ['---' for i in range(len(df.columns))] df_fmt = pd.DataFrame([fmt], columns=df.columns) df_formatted = pd.concat([df_fmt, df]) display(Markdown(df_formatted.to_csv(sep="|", index=False))) pandas_df_to_markdown_table(summary)
Экспорт изображения в отчет
В этом примере мы будем строить bubble-chart, про методику построения которых рассказывали в недавнем посте. В прошлый раз мы использовали пакет Seaborn, наглядно показывая, что отображение данных размером кругов на графике происходит корректно. Такие же графики можно построить и при помощи пакета Plotly.
Для того чтобы отобразить график, построенный в Plotly в отчете тоже нужно немного постараться. Дело в том, что plt.show() не поможет отобразить график при экспорте. Поэтому, нужно сохранить получившийся график в рабочей директории, а затем, используя библиотеку iPython.display, отобразить его с помощью функции Image().
from IPython.display import Image import plotly.express as px fig = px.scatter(data_g.query("year==2007"), x="gdpPercap", y="lifeExp", size="pop", color="continent", log_x=True, size_max=70) fig.write_image('figure_1.jpg') Image(data = 'figure_1.jpg', width = 1000)
Формирование и экспорт отчета
Когда все этапы анализа данных завершены, отчет можно экспортировать. Если вам нужны заголовки или текст в отчете, то пишите его в ячейках ноутбука, сменив формат Code на Markdown. Для экспорта можно использовать терминал, запуская там вторую строку без восклицательного знака, либо можно запустить код, написанный ниже, в ячейке ноутбука. Мы советуем не загружать отчет кодом, поэтому используем параметр TemplateExporter.exclude_input=True, чтобы ячейки с кодом не экспортировались. Также, при запуске этой ячейки код выдает стандартный поток (standard output) и, чтобы в отчете его не было видно, в начале ячейки нужно написать %%capture.
%%capture !jupyter nbconvert --to pdf --TemplateExporter.exclude_input=True ~/Desktop/VALIOTTI/Reports/Sample\LaTeX\ Report.ipynb !open ~/Desktop/VALIOTTI/Reports/Sample\ LaTeX\ Report.pdf
Если вы все сделали верно и методично, то в итоге получится вот такой отчет! Презентуйте данные красиво 🙂
Python. Урок 6. Работа с IPython и Jupyter Notebook
![]()
IPython представляет собой мощный инструмент для работы с языком Python. Базовые компоненты IPython – это интерактивная оболочка для с широким набором возможностей и ядро для Jupyter. Jupyter notebook является графической веб-оболочкой для IPython, которая расширяет идею консольного подхода к интерактивным вычислениям.
Основные отличительные особенности данной платформы – это комплексная интроспекция объектов, сохранение истории ввода на протяжении всех сеансов, кэширование выходных результатов, расширяемая система “магических” команд, логирование сессии, дополнительный командный синтаксис, подсветка кода, доступ к системной оболочке, стыковка с pdb отладчиком и Python профайлером.
IPython позволяет подключаться множеству клиентов к одному вычислительному ядру и, благодаря своей архитектуре, может работать в параллельном кластере.
В Jupyter notebook вы можете разрабатывать, документировать и выполнять приложения на языке Python, он состоит из двух компонентов: веб-приложение, запускаемое в браузере, и ноутбуки – файлы, в которых можно работать с исходным кодом программы, запускать его, вводить и выводить данные и т.п.
Веб приложение позволяет:
- редактировать Python код в браузере, с подсветкой синтаксиса, автоотступами и автодополнением;
- запускать код в браузере;
- отображать результаты вычислений с медиа представлением (схемы, графики);
- работать с языком разметки Markdown и LaTeX.
Ноутбуки – это файлы, в которых сохраняются исходный код, входные и выходные данные, полученные в рамках сессии. Фактически, он является записью вашей работы, но при этом позволяет заново выполнить код, присутствующий на нем. Ноутбуки можно экспортировать в форматы PDF, HTML.
Установка и запуск
Jupyter Notebook входит в состав Anaconda. Описание процесса установки можно найти в первом уроке. Для запуска Jupyter Notebook перейдите в папку Scripts (она находится внутри каталога, в котором установлена Anaconda) и в командной строке наберите:
> ipython notebook
В результате будет запущена оболочка в браузере.

Примеры работы
Будем следовать правилу: лучше один раз увидеть… Рассмотрим несколько примеров, выполнив которые, вы сразу поймете принцип работы с Jupyter notebook.
Запустите Jupyter notebook и создайте папку для наших примеров, для этого нажмите на New в правой части экрана и выберите в выпадающем списке Folder.

По умолчанию папке присваивается имя “Untitled folder”, переименуем ее в “notebooks”: поставьте галочку напротив имени папки и нажмите на кнопку “Rename”.

Зайдите в эту папку и создайте в ней ноутбук, воспользовавшись той же кнопкой New, только на этот раз нужно выбрать “Python [Root]”.

В результате будет создан ноутбук.

.
Код на языке Python или текст в нотации Markdown нужно вводить в ячейки:
![]()
Если это код Python, то на панели инструментов нужно выставить свойство “Code”.

Если это Markdown текст – выставить “Markdown”.

Для начал решим простую арифметическую задачу: выставите свойство “Code”, введите в ячейке “2 + 3” без кавычек и нажмите Ctrl+Enter или Shift+Enter, в первом случае введенный вами код будет выполнен интерпретатором Python, во втором – будет выполнен код и создана новая ячейка, которая расположится уровнем ниже так, как показано на рисунке.

Если у вас получилось это сделать, выполните еще несколько примеров.

Основные элементы интерфейса Jupyter notebook
У каждого ноутбука есть имя, оно отображается в верхней части экрана. Для изменения имени нажмите на его текущее имя и введите новое.

Из элементов интерфейса можно выделить, панель меню:
![]()
![]()
и рабочее поле с ячейками:

Ноутбук может находиться в одном из двух режимов – это режим правки (Edit mode) и командный режим (Command mode). Текущий режим отображается на панели меню в правой части, в режиме правки появляется изображение карандаша, отсутствие этой иконки значит, что ноутбук находится в командном режиме.

Для открытия справки по сочетаниям клавиш нажмите “Help->Keyboard Shortcuts”

В самой правой части панели меню находится индикатор загруженности ядра Python. Если ядро находится в режиме ожидания, то индикатор представляет собой окружность.

Если оно выполняет какую-то задачу, то изображение измениться на закрашенный круг.
Запуск и прерывание выполнения кода
Если ваша программа зависла, то можно прервать ее выполнение выбрав на панели меню пункт Kernel -> Interrupt.
Для добавления новой ячейки используйте Insert->Insert Cell Above и Insert->Insert Cell Below.
Для запуска ячейки используете команды из меню Cell, либо следующие сочетания клавиш:
Ctrl+Enter – выполнить содержимое ячейки.
Shift+Enter – выполнить содержимое ячейки и перейти на ячейку ниже.
Alt+Enter – выполнить содержимое ячейки и вставить новую ячейку ниже.
Как сделать ноутбук доступным для других людей?
Существует несколько способов поделиться своим ноутбуком с другими людьми, причем так, чтобы им было удобно с ним работать:
- передать непосредственно файл ноутбука, имеющий расширение “.ipynb”, при этом открыть его можно только с помощью Jupyter Notebook;
- сконвертировать ноутбук в html;
- использовать https://gist.github.com/ ;
- использовать http://nbviewer.jupyter.org/.
Вывод изображений в ноутбуке
Печать изображений может пригодиться в том случае, если вы используете библиотеку matplotlib для построения графиков. По умолчанию, графики не выводятся в рабочее поле ноутбука. Для того, чтобы графики отображались, необходимо ввести и выполнить следующую команду:
%matplotlib inline
Пример вывода графика представлен на рисунке ниже.

Магия
Важной частью функционала Jupyter Notebook является поддержка магии. Под магией в IPython понимаются дополнительные команды, выполняемые в рамках оболочки, которые облегчают процесс разработки и расширяют ваши возможности. Список доступных магических команд можно получить с помощью команды
%lsmagic

Для работы с переменными окружения используется команда %env.

Запуск Python кода из “.py” файлов, а также из других ноутбуков – файлов с расширением “.ipynb”, осуществляется с помощью команды %run.

Для измерения времени работы кода используйте %%time и %timeit.
%%time позволяет получить информацию о времени работы кода в рамках одной ячейки.

%timeit запускает переданный ей код 100000 раз (по умолчанию) и выводит информацию среднем значении трех наиболее быстрых прогонах.

Информацию по остальным магическим командам можете найти здесь:
Интересные примеры ноутбуков, в которых довольно полно раскрыты возможности Jupyter Notebook можно найти в ресурсах, перечисленных ниже.
P.S.
Если вам интересна тема анализа данных, то мы рекомендуем ознакомиться с библиотекой Pandas. На нашем сайте вы можете найти вводные уроки по этой теме. Все уроки по библиотеке Pandas собраны в книге “Pandas. Работа с данными”.
Раздел: Python Уроки по Python Метки: Python, Уроки Python
Python. Урок 6. Работа с IPython и Jupyter Notebook : 4 комментария
- Уведомление: Adopting IPython & Jupyter For Selenium Testing: Plan, Write, Validate Tests in Python | Shakuro
- Михаил Филиппов 17.01.2021 ” это интерактивная оболочка для с широким набором возможностей ”
после ДЛЯ пропало слово
- Ксения 30.10.2023 Сначала прописать activate baze, затем jupyter notebook. Также можно вызвать Anaconda Navigator и из него Jupiter Notebook
Конвертация Jupyter-ноутбуков для запуска в пакетном режиме на суперкомпьютере (запуск через очередь задач)
Jupyter-ноутбуки можно сконвертировать в py-файл для запуска на суперкомпьютере в пакетном режиме. Благодаря такому режиму Вы сможете запускать сразу множество вычислительных задач с различными параметрами, не дожидаясь освобождения ресурсов. Поиск ресурсов для ваших задач будет круглосуточно выполнять планировщик slurm. Задачи начнут работу сразу после появления ресурсов, не дожидаясь вашего подключения к ноутбуку. После окончания работы пакетная задача будет завершена автоматически и ресурсы суперкомпьютера будут переданы следующим задачам без простоя.
Предварительно следует открыть ноутбук в веб-интерфейсе Jupyter и убедиться, что код подготовлен к автоматическому выполнению без участия пользователя.
Конвертация ноутбука в py-файл возможна следующими способами:
- В интерфейсе JupyterHub перейти в меню File -> Save and Export Notebook As. -> Executable script. После чего загрузить полученный файл на суперкомпьютер.

- В классическом интерфейсе Jupyter Notebook выбрать пункт File -> Download as -> Python (.py). После чего загрузить полученный файл на суперкомпьютер.

- В консоли суперкомпьютера загрузить модуль Python: module load Python и выполнить команду конвертации ноутбука: jupyter nbconvert —to python notebook_name.ipynb (сконвертированный py-файл будет сохранён в каталоге с ноутбуком под названием notebook_name.py).

Для выполнения данного py-файла на суперкомпьютере в пакетном режиме необходимо подготовить sbatch-файл. Пример sbatch-файла converted_notebook.sbatch для запуска сконвертированного ноутбука:
#!/bin/bash #SBATCH --job-name=converted_notebook # Название задачи #SBATCH --time=01-00 # Максимальное время выполнения
#SBATCH --nodes=1 # Все CPU и GPU будут выделены на одном вычислительном узле #SBATCH --cpus-per-task=4 # Количество CPU на одну задачу #SBATCH --gpus=2 # Требуемое кол-во GPU
#SBATCH --constraint="type_a|type_b|type_c" # Типы вычислительных узлов
#SBATCH --mail-type=END,FAIL # Укажите ваш email для отправки уведомлений
#SBATCH --mail-user=ваша_почта # События, требующие уведомления
module purge # Отключаем все ранее загруженные модули module load Python/PyTorch_GPU_v1.11 # Загрузка модуля Python PyTorch_GPU_v1.11 ipython converted_notebook.py # Выполнение расчёта
Укажите требуемые параметры для запуска задачи, название модуля/окружения, адрес электронной почты и имя файла. Для запуска задачи на суперкомпьютере необходимо выполнить команду sbatch converted_notebook.sbatch
Код из py-файла будет выполнен с использованием ipython точно также, как он выполняется в Jupyter-ноутбуке.
Подробно процесс подготовки sbatch-файлов и запуска задач описан в отдельной инструкции.
Ограчения пакетного режима
- В пакетном режиме запуска задач не будут сформированы графики с использованием модулей типа matplotlib.pyplot. Графики можно сохранять в файл, используя метод pyplot.savefig(‘plot_name.png’)
Нашли опечатку ?
Выделите её, нажмите Ctrl+Enter и отправьте нам уведомление. Спасибо за участие!
Сервис предназначен только для отправки сообщений об орфографических и пунктуационных ошибках.
Национальный исследовательский университет «Высшая школа экономики» → Отдел суперкомпьютерного моделирования → Конвертация Jupyter-ноутбуков для запуска в пакетном режиме на суперкомпьютере (запуск через очередь задач)
- О ВЫШКЕ
- Цифры и факты
- Руководство и структура
- Преподаватели и сотрудники
- Корпуса и общежития
- Закупки
- Обращения граждан в НИУ ВШЭ
- Фонд целевого капитала
- Противодействие коррупции
- Сведения о доходах, расходах, об имуществе и обязательствах имущественного характера
- Сведения об образовательной организации
- Людям с ограниченными возможностями здоровья
- Единая платежная страница
- Работа в Вышке
- ОБРАЗОВАНИЕ
- Лицей
- Довузовская подготовка
- Олимпиады
- Прием в бакалавриат
- Вышка+
- Прием в магистратуру
- Аспирантура
- Дополнительное образование
- Центр развития карьеры
- Бизнес-инкубатор ВШЭ
- НАУКА
- Научные подразделения
- Исследовательские проекты
- Мониторинги
- Диссертационные советы
- Защиты диссертаций
- Академическое развитие
- Конкурсы и гранты
- Научно-образовательный портал IQ.hse.ru
- XXIV Ясинская (Апрельская) международная научная конференция по проблемам развития экономики и общества
- РЕСУРСЫ
- Библиотека
- Издательский дом ВШЭ
- Книжный магазин «БукВышка»
- Типография
- Медиацентр
- Журналы ВШЭ
- Публикации
- Единый архив экономических и социологических данных
- Полезные ссылки
- Министерство науки и высшего образования РФ
- Министерство просвещения РФ
- Федеральный портал «Российское образование»
- Массовые открытые онлайн-курсы
Шрифты HSE Sans и HSE Slab разработаны в Школе дизайна НИУ ВШЭ