{"id":14277,"url":"\/distributions\/14277\/click?bit=1&hash=17ce698c744183890278e5e72fb5473eaa8dd0a28fac1d357bd91d8537b18c22","title":"\u041e\u0446\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c \u043b\u0438\u0442\u0440\u044b \u0431\u0435\u043d\u0437\u0438\u043d\u0430 \u0438\u043b\u0438 \u0437\u043e\u043b\u043e\u0442\u044b\u0435 \u0443\u043a\u0440\u0430\u0448\u0435\u043d\u0438\u044f","buttonText":"\u041a\u0430\u043a?","imageUuid":"771ad34a-9f50-5b0b-bc84-204d36a20025"}

Упрощаем анализ данных с помощью PandasAI

Не так давно появилась новая библиотека PandasAI, и сегодня я, Горюнов Дмитрий расскажу о ней. PandasAI подход к анализу данных с помощью привычной нам библиотеки Pandas. Принцип работы библиотеки заключается в том, что пользователь при работе с датафреймом не пишет код, а естественным языком делает запрос по своим данным и получает ответ. Реализовано это с помощью подключения к OpenAI, на чьей стороне обрабатывается запрос пользователя.

Данная библиотека является надстройкой над библиотекой Pandas. В библиотеке есть метод, при вызове которого первым параметром указывается датафрейм, а вторым запрос пользователя. При выполнении запроса ИИ анализирует вопрос, генерирует Python код с применением библиотеки Pandas и самостоятельно выполняет этот код на устройстве пользователя.

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

В данном посте будет рассмотрен кейс с обработкой данных нормативных документов, импортированных из информационной системы ФИАС (Федеральная информационная адресная система).

Реализация выполняется в Jupyter Notebook.

Для начала нужно установить библиотеку PandasAI.

После чего импортируем необходимые библиотеки и создаем соединение с OpenAI по токену, который получили заранее.

Далее с сайта ФИАС скачали датасет нормативных документов в виде xml файла, импортировали файл в Pandas Dataframe, дополнительно преобразовали столбцы с датами из строкового типа в тип даты и переименовали колонки таблицы для удобства.

Так выглядит датафрейм, который будет обрабатываться:

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

Реализация с помощью привычной пользователям библиотеки Pandas:

Теперь решаем задачу, сделав запрос PandasAI естественным языком:

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

Далее сгенерированный код выполняется и выводится результат запроса.

Решим более сложную задачу, в которой сначала необходимо будет поставить фильтр «ноябрь 2023» по столбцу «Дата документа», выбрать только документы с типом «21» и посчитать количество уникальных номеров документов, где в наименовании органа, создавшего документ встречается слово «администрация».

Реализация с помощью Pandas.

Теперь с помощью PandasAI.

Попробуем визуализировать данные с помощью PandasAI. Допустим, пользователю необходимо построить гистограмму, которая отобразит количество документов на каждую дату документа за 2023 год.

Приступим сразу же к реализации с помощью PandasAI:

В результате получаем гистограмму по запросу.

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

Если обратить внимание на лог генерации кода, то при наличии опыта работы с библиотекой Pandas можно обнаружить на каком моменте ИИ допустил ошибку:

Протестировав данную библиотеку на нескольких датасетах могу с уверенностью сказать, что её использование при решении задач анализа данных имеет место быть и может не только облегчить работу аналитику, но и ускорить её. Ведь на написание даже простых запросов к данным с помощью библиотеки Pandas уйдет пару минут и более, когда создание соединения с OpenAI, написание запроса для PandasAI и его выполнение уходит не более минуты.

Иногда могут возникнуть и проблемы, когда ИИ некорректно понимает запрос пользователя. Можно постараться исправить возникшие проблемы, расписав свой запрос более подробнее, со всеми деталями, но и это не гарантирует 100% правильного ответа – ИИ не идеален.

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

Ссылка на подробную статью по получению доступа https://habr.com/ru/articles/704600/

Ссылка на получение token для работы с API https://platform.openai.com/account/api-keys

Ссылка на страницу с документацией https://platform.openai.com/docs/api-reference/introduction

0
2 комментария
Михаил Тверской

Статья понравилась, всё по делу!

Ответить
Развернуть ветку
Елена Фролова

Спасибо автору! Познавательно и полезно!

Ответить
Развернуть ветку
-1 комментариев
Раскрывать всегда