Как я создал приложение для работы с электронными таблицами на Python, чтобы упростить науку о данных

Tags: Python, data science, machine learning, наука о данных

Рик Ламерс

Сегодня я работаю с открытым исходным кодом Grid studio, веб-приложением для работы с электронными таблицами с полной интеграцией языка программирования Python.

 

Около года назад я начал возиться с идеей создания IDE-технологии, которая мне всегда была нужна. Тщательно поработав с Microsoft Excel, R (Studio) и Python, я представлял, как некоторые их интегрированные версии облегчат мою жизнь.

Зачем?

Основная проблема, которую я решил решить с помощью Grid studio, - это разрозненный рабочий процесс, который я испытывал при переходе назад и вперед между несколькими инструментами, такими как R studio и Excel, при работе над проектами по науке о данных.

При экспорте этого CSV-файла за миллиардный раз, испытывая зависание окон приложений, когда число моих строк было слишком велико, или попытке сделать что-то прямое, такое как чтение в JSON-файле, я довольствовался этим. Существующие инструменты не предоставили мне среду и связанный с ней рабочий процесс, который позволил мне быть продуктивным.

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

Как это работает?

Grid studio - это веб-приложение, которое очень похоже на обычную программу для работы с электронными таблицами, например, Google Sheets или Microsoft Excel. Однако его убийственной особенностью является глубокая интеграция языка Python.

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

Сочетание этого простого пользовательского интерфейса с мощью полноценного языка программирования, такого как Python, действительно выделяет его.

Сценарии на Python максимально просты: просто напишите несколько строк и выполните его напрямую.

 

Основная интеграция: чтение и запись на листах

В основе интеграции Python лежит интерфейс чтения и записи в вашей электронной таблице. Высокопроизводительное соединение между данными ваших листов и данными в вашем процессе Python.

Просто напишите на листе следующее:

sheet("A1:A3", [1, 2, 3])

И прочитайте с листа, как здесь:

my_matrix = sheet("A1:A3")

С помощью этой простой, но мощной функции вы можете читать и писать напрямую с листов и на них, чтобы автоматизировать ввод, извлечение, визуализацию и многое другое.

Написание пользовательских функций электронных таблиц

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

Стандартные функции электронных таблиц, такие как AVERAGE, SUM, IF и т. д., уже доступны по умолчанию. Но что, если вам нужно больше?

Просто напишите нужную вам функцию!

def UPPERCASE(a):

    return str(a).uppercase()

Теперь вызовите эту функцию в своей электронной таблице, как если бы вы работали с обычной функцией.

Использование экосистемы Python

Используя всю мощь экосистемы Python, вы получаете мгновенный доступ к современным инструментам обработки данных:

 

Это обеспечивает простой доступ к мощным моделям, таким как линейная регрессия и SVM для моделирования ваших данных.

Docker Runtime

Приложение работает в контейнере Docker, который дает вам легкий доступ к полностью упакованной и изолированной среде UNIX (даже в Windows!) Со всем готовым к работе: Python, scikit-learn, numpa, pandas, terminal, wget, zip и многие другие. 

Это делает установку Grid studio такой же простой, как загрузка готового образа Docker и запуск одной команды.

Визуализация данных

Распространенной задачей в науке о данных является визуализация ваших данных. Учитывая ее важность, в Grid studio встроена поддержка расширенного построения графиков путем интеграции библиотеки Plotly.js и стандартного Python Matplotlib. Это предоставляет вам расширенные возможности построения в четком векторном формате.

 

Чтобы дать вам некоторые идеи о том, как использовать функции Grid studio, мы покажем, как они могут сочетаться с некоторыми конкретными примерами.

Пример: очистка сети

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

 

Выше вы видите, как короткий скрипт легко загружает новостные статьи из Hacker News прямо на лист.

Источник: scrape.py

Пример: оценка нормального распределения

В этом примере показан несколько глупый случай использования оценки нормального распределения с еще более высокой точностью, визуализированный с помощью Plotly.js. Здесь вы можете увидеть, как интерактивное построение графиков может дать вам представление о том, что происходит.

 

Источник: estimate_normal.py

Как я могу использовать это?

Локальная установка Grid studio очень проста.

(Убедитесь, что у вас установлен Docker)

  1. Клонируйте репозиторий с помощью этой команды:

git clone https://github.com/ricklamers/gridstudio

  1. Запустите скрипт bash (в Windows используйте, например, Git Bash) с помощью этой команды:

cd gridstudio && ./run.sh

  1. Перейдите на http://127.0.0.1:8080 в своем браузере.

Git Bash для Windows - установка Docker 

Примечание: в Linux вам может потребоваться запустить следующее(для шага 2):

cd gridstudio && sudo ./run.sh

так как для запуска Docker требуется доступ sudo.

Релиз + Будущее развитие

Как уже упоминалось во введении, сегодня Grid Studio будет доступна бесплатно и с открытым исходным кодом через репозиторий GitHub.

Если вы сделали это здесь, вы можете сами попробовать и прислать любые отзывы и / или вклады в проект на GitHub.

У меня есть некоторые идеи о том, какие функциональные возможности или функции могут быть добавлены в будущем для улучшения Grid Studio. Тем не менее, поскольку проект теперь имеет открытый исходный код, я думаю, было бы разумно отслеживать их на GitHub и видеть, какие из них имеют самый высокий приоритет в соответствии со всеми участниками.

- Расширение количества «нативных» функций, доступных в электронной таблице (например, AVERAGE, SUM, IF и т. Д.), Возможно, даже достижение четности (и согласованности) с некоторыми существующими пакетами, такими как Calc или Excel Libre Office.

- Подсветка синтаксиса/всплывающие подсказки функций при наборе формул в электронной таблице

- Расширенная сортировка и фильтрация в электронной таблице

- Расширенные элементы управления для интерактивного черчения с Plotly.js

- Общий доступ к рабочим областям/коду более прост (т.е. экспортируется рабочее пространство)

- Формы сотрудничества в реальном времени (это может быть слишком сложно)

- Какой-то API /интерфейс для дополнений /расширений

- Обновление парсера формул до реального парсера на основе грамматики.

- Автозаполнение Python

- Оптимизация производительности

- Надежность интеграции основного Python /листа (без разрыва символа / последовательности)

No Comments

Add a Comment