Перейти к содержимому

Как сохранить файл в формате ipynb

  • автор:

Сохранение изменеённых данных после закрытия

Анализирую данные на 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

Follow us on Google Plus Follow us on rss

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.

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

Создание папки в Jupyter notebook

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

Переименование папки в Jupyter notebook

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

Создание notebook

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

Jupyter notebook

.

Код на языке Python или текст в нотации Markdown нужно вводить в ячейки:

Jupyter notebook cell

Если это код Python, то на панели инструментов нужно выставить свойство “Code”.

Выбор типа ячейки

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

Выбор типа ячейки

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

3+2 пример в Jupyter notebook

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

Пример работы в Jupyter notebook

Основные элементы интерфейса Jupyter notebook

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

Изменение имени notebook

Из элементов интерфейса можно выделить, панель меню:

Панель меню Jupyter notebook

Панель инструментов Jupyter notebook

и рабочее поле с ячейками:

Рабочее поле с ячейками

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

Режим редактирования ячейки

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

Сочетания клавиш в Jupyter notebook

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

Python kernel остановлен

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

Запуск и прерывание выполнения кода

Если ваша программа зависла, то можно прервать ее выполнение выбрав на панели меню пункт 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

Список magic команд

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

Работа с %env

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

Работа с %run

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

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

Работа с %%time

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

Работа с %timeit

Информацию по остальным магическим командам можете найти здесь:

Интересные примеры ноутбуков, в которых довольно полно раскрыты возможности Jupyter Notebook можно найти в ресурсах, перечисленных ниже.

P.S.

Если вам интересна тема анализа данных, то мы рекомендуем ознакомиться с библиотекой Pandas. На нашем сайте вы можете найти вводные уроки по этой теме. Все уроки по библиотеке Pandas собраны в книге “Pandas. Работа с данными”.

Раздел: Python Уроки по Python Метки: Python, Уроки Python

Python. Урок 6. Работа с IPython и Jupyter Notebook : 4 комментария

  1. Уведомление: Adopting IPython & Jupyter For Selenium Testing: Plan, Write, Validate Tests in Python | Shakuro
  2. Михаил Филиппов 17.01.2021 ” это интерактивная оболочка для с широким набором возможностей ”
    после ДЛЯ пропало слово
  1. Ксения 30.10.2023 Сначала прописать activate baze, затем jupyter notebook. Также можно вызвать Anaconda Navigator и из него Jupiter Notebook

Конвертация Jupyter-ноутбуков для запуска в пакетном режиме на суперкомпьютере (запуск через очередь задач)

Jupyter-ноутбуки можно сконвертировать в py-файл для запуска на суперкомпьютере в пакетном режиме. Благодаря такому режиму Вы сможете запускать сразу множество вычислительных задач с различными параметрами, не дожидаясь освобождения ресурсов. Поиск ресурсов для ваших задач будет круглосуточно выполнять планировщик slurm. Задачи начнут работу сразу после появления ресурсов, не дожидаясь вашего подключения к ноутбуку. После окончания работы пакетная задача будет завершена автоматически и ресурсы суперкомпьютера будут переданы следующим задачам без простоя.

Предварительно следует открыть ноутбук в веб-интерфейсе Jupyter и убедиться, что код подготовлен к автоматическому выполнению без участия пользователя.

Конвертация ноутбука в py-файл возможна следующими способами:

  1. В интерфейсе JupyterHub перейти в меню File -> Save and Export Notebook As. -> Executable script. После чего загрузить полученный файл на суперкомпьютер.
  2. В классическом интерфейсе Jupyter Notebook выбрать пункт File -> Download as -> Python (.py). После чего загрузить полученный файл на суперкомпьютер.
  3. В консоли суперкомпьютера загрузить модуль 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 разработаны в Школе дизайна НИУ ВШЭ

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *