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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Протестировав данную библиотеку на нескольких датасетах могу с уверенностью сказать, что её использование при решении задач анализа данных имеет место быть и может не только облегчить работу аналитику, но и ускорить её. Ведь на написание даже простых запросов к данным с помощью библиотеки 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

2020
2 комментария

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

2
Ответить

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

1
Ответить