ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Python] 파이썬 라이브러리 PandasAI
    Data Analysis/Python 2024. 3. 4. 22:10

    Table of Contents

    1. Introduction
    2. PandasAI란?
    3. Reference

     

    Introduction

     2023년 10월 100달러 였던 엔비디아 주식은 최근 800달러를 넘으며 앤비디아(NVIDIA) 주가가 미친듯이 치솟고 있다. AI과 관련된 테마주 역시 상당한 반응을 보이며 다시 한번 AI 세상에 살고 있음을 느끼게 하고 있다. 매일 AI 신기술들이 발표되고 있을 정도인데, 데이터를 분석하고 모델을 만드는 직업을 갖고 있다면 많이 사용하고 있는 언어 파이썬의 새로운 라이브러리를 소개하려고 한다. 특히, 기존에 데이터를 처리하거나 분석하는 과정에서 오랜 시간을 소비했던 영역을 자연어를 활용하여 손쉽게 처리할 수 있게 했다는 점에서 굉장한 매력을 갖고 있다. 바로 PandasAI인데, LLM을 통해 수집한 데이터를 자유자재로 처리하고 시각화까지 진행할 수 있다는 점에서 분석가들의 시간을 단축하는데 큰 도움을 줄 것 같은 라이브러리이다.

    출처 : PandasAI

    PandasAI란?

     PandasAI는 데이터를 자연어로 쉽게 처리하기 위한 파이썬 라이브러리로 데이터 탐색, 정제, 분석을 생성형 AI를 활용하여 진행할 수 있기 때문에 보다 쉽게 분석을 진행하는 라이브러리이다 기본적으로 pip install을 이용해서 pandasai를 쉽게 설치할 수 있다.

    !pip insatll pandasai
    import pandas as pd
    from pandasai import SmartDataframe

     

    PandasAI는 OpenAI의 API를 활용하기 때문에 가입하고 API TOKEN을 발급 받아야 활용이 가능하다. OpenAI에서 나온 ChatGPT가 여기서 활용하는 LLM(대형언어모델)이기 때문에 관련된 내용은 아래 링크를 통해 접속해서 확인할 수 있다.

     

     

    [Data 이모저모] ChatGPT, 무엇인가?

    Table of Contents Introduction ChatGPT란? Reference Introduction 최근 ChatGPT에 대한 이슈가 상당히 높은 것으로 나타나고 있다. 샘 알트만(Sam Altman)에 의해 설립된 인공지능 회사인 OpenAI에서 제공하는 서비스이

    jaydata.tistory.com

    from pandasai.llm import OpenAI
    llm = OpenAI(api_token = "YOUR_API_TOKEN")
    구분 호출방법
    BambooLLM from pandasai.llm import BambooLLM
    OpenAI models from pandasai.llm import OpenAI
    Google PaLM from pandasai.llm import GooglePalm
    Google Vertexai from pandasai.llm import GoogleVertexAI
    Azure OpenAI from pandasai.llm import AzureOpenAI
    HuggingFace via Text Generation from pandasai.llm import HuggingFaceTextGen
    Langchain models from langchain_openai import OpenAI

     

     

    먼저, 테스트를 위해서 github에 나온 가이드 대로 국가별 판매량 데이터 셋을 하드코딩하여 입력하였다.

    sales_by_country = pd.DataFrame({
        "country": ["United States", "United Kingdom", "France", "Germany", "Italy", "Spain", "Canada", "Australia", "Japan", "China"],
        "sales": [5000, 3200, 2900, 4100, 2300, 2100, 2500, 2600, 4500, 7000]
    })

     

    그리고 자연어를 입력해서 조회를 시도해보면 가장 많이 판매되는 국가 별로 TOP5를 조회하는 것을 알 수 있다.

    df = SmartDataframe(sales_by_country, config={"llm": llm})
    df.chat('Which are the top 5 countries by sales?')
    
    China, United States, Japan, Germany, Australia

     

    다만, 아직 한국어 지원이 안되고 있다는 점이 아쉽게 느껴진다. 또한 질의를 잘못할 경우 생각보다 결과물이 정상적으로 나오지 않는다는 점에서 오히려 코딩보다 자연어 질의가 더 어려운 느낌이 들 때도 있지만 언어가 익숙하지 않은 상태에서 LLM의 도움을 받는다면 확실히 결과물 제공하는 과정에 걸리는 시간을 상당히 단축할 것으로 기대한다.

     

    Reference

    Sinaptik Gmbh, "pandas-ai LLMs", https://docs.pandas-ai.com/en/latest/LLMs/llms/

    Sinaptik Gmbh, "pandas-ai", https://pandas-ai.com/

    댓글

Designed by Tistory.