Pandas AI 사용 방법 요약

Sumin Kim·2025년 3월 11일

MRP+AI

목록 보기
1/2
post-thumbnail

Pandas AI

Pandas AI는 판다스(Pandas) 라이브러리에 생성형 AI 기능을 추가하여 데이터를 자연어로 분석하고 조작할 수 있는 Python 패키지임. 이를 통해 데이터 과학자와 분석가가 복잡한 코드를 작성하지 않고도 데이터를 직관적으로 다룰 수 있음.


Pandas AI 설치 및 환경 설정

  1. 패키지 설치

    • pip install pandasai 명령어를 사용하여 Pandas AI를 설치함[2][3][4].
  2. 필요한 라이브러리 임포트

    • Pandas AI와 판다스를 임포트하여 사용 준비를 함.
    import pandas as pd
    from pandasai import PandasAI
    from pandasai.llm.openai import OpenAI
  3. API 키 설정

    • OpenAI 또는 HuggingFace에서 API 키를 발급받아 환경 변수로 설정함.
    import os
    os.environ["OPENAI_API_KEY"] = "your_openai_api_key"
    llm = OpenAI(api_token=os.environ["OPENAI_API_KEY"])
    pandas_ai = PandasAI(llm=llm)

기본 사용법

  1. 데이터프레임 생성 및 로드

    • Pandas를 활용해 데이터프레임을 생성하거나 CSV 파일을 로드함.
    data = {
        'Name': ['Alice', 'Bob', 'Charlie'],
        'Age': [25, 30, 35]
    }
    df = pd.DataFrame(data)
  2. 자연어 쿼리 실행

    • Pandas AI를 활용해 데이터프레임에 대해 자연어로 질문을 하고 결과를 얻음.
    query = "Who is the oldest person?"
    result = pandas_ai.query(df, query)
    print(result)

Streamlit을 활용한 UI 구성

  1. Streamlit 설치 및 기본 화면 구성

    • pip install streamlit 명령어로 Streamlit 설치 후 UI를 구성함.
    import streamlit as st
    from pandasai.llm.local_llm import LocalLLM
    
    model = LocalLLM(api_base="http://localhost:11434/v1", model="llama3")
    st.title("Data Analysis with PandasAI")
  2. 파일 업로드 기능 추가

    • CSV 파일을 업로드하고 데이터를 화면에 표시함.
    upload_file = st.file_uploader("Upload a CSV file", type=['csv'])
    
    if upload_file is not None:
        df = pd.read_csv(upload_file)
        st.write(df.head(3))
  3. 프롬프트 입력 및 결과 출력

    • 사용자 입력을 받아 데이터 분석 결과를 출력함.
    from pandasai import SmartDataframe
    
    if upload_file is not None:
        data = pd.read_csv(upload_file)
        df = SmartDataframe(data, config={"llm": model})
        prompt = st.text_area("Enter your prompt:")
        
        if st.button("Generate"):
            if prompt:
                with st.spinner("Generating response..."):
                    st.write(df.chat(prompt))

추가 기능

  1. 데이터 정제

    • 결측값 처리 및 데이터 표준화를 자동으로 수행함[5].
      cleaned_df = pandas_ai.clean_data(df)
      print(cleaned_df)
  2. 데이터 시각화

    • 데이터를 기반으로 플롯을 생성하여 트렌드와 인사이트를 시각적으로 확인함[6].
  3. 기능 생성

    • 기존 데이터를 바탕으로 새로운 특징(feature)을 생성하여 분석을 강화함[7].

결론

Pandas AI는 판다스의 강력한 데이터 처리 능력을 생성형 AI와 결합하여 자연어 기반 데이터 분석을 가능하게 함. Streamlit과 같은 프레임워크를 사용하면 직관적인 UI와 함께 데이터 분석 워크플로우를 간소화할 수 있음.


pandas ai를 사용해서 다른 작업에 응용할 수 있는 지를 추가 기재 할 계획임. 1편은 완료!

P.S. 혹시 잘못된 부분이 있으면 댓글로 알려주세요.

Citations:
[1] https://normalstory.tistory.com/entry/Pandas-AI-%ED%8C%90%EB%8B%A4%EC%8A%A4%EC%99%80-ChatGPT%EC%99%80%EC%9D%98-%EB%A7%8C%EB%82%A8featollama
[2] https://www.datacamp.com/blog/an-introduction-to-pandas-ai
[3] https://www.kdnuggets.com/utilizing-pandas-ai-for-data-analysis
[4] https://www.restack.io/p/pandas-ai-answer-ollama-integration-cat-ai
[5] https://www.artiba.org/blog/exploring-pandas-ai-key-features-and-practical-applications
[6] https://github.com/TirendazAcademy/PandasAI-Tutorials
[7] https://www.123ofai.com/post/pandas-ai
[8] https://plainenglish.io/blog/pandas-ai-a-step-by-step-guide-into-exploratory-data-analysis-powered-by-ai
[9] https://normalstory.tistory.com/entry/Pandas-AI-%ED%8C%90%EB%8B%A4%EC%8A%A4%EC%99%80-ChatGPT%EC%99%80%EC%9D%98-%EB%A7%8C%EB%82%A8featollama
[10] https://www.cybrosys.com/blog/an-overview-of-pandas-ai
[11] https://zzsza.github.io/data/2023/05/27/pandas-ai/
[12] https://aiandgamedev.com/ai/ollama-6-gpt-localllm-pandasai/
[13] https://github.com/sinaptik-ai/pandas-ai
[14] https://www.youtube.com/watch?v=5PVGT797nXg
[15] https://github.com/TirendazAcademy/PandasAI-Tutorials/blob/main/Pandas-AI-with-Ollama.ipynb
[16] https://www.restack.io/p/pandas-ai-answer-using-pandas-ai-cat-ai
[17] https://fornewchallenge.tistory.com/entry/%EC%97%91%EC%85%80%EA%B3%BC-%EB%8C%80%ED%99%94-PandasAI%EC%99%80-Ollama%ED%99%9C%EC%9A%A9-6%EC%A4%84-%EC%BD%94%EB%93%9C%EB%A1%9C-Llama3-%EC%B1%97%EB%B4%87-%EB%A7%8C%EB%93%A4%EA%B8%B0
[18] https://pandasai-docs.readthedocs.io
[19] https://www.youtube.com/watch?v=bw_e6xgGSTY
[20] https://www.youtube.com/watch?v=p53YfWZJt14
[21] https://www.youtube.com/watch?v=_dDaNgBDoHY

profile
👩‍💻초보 researcher

0개의 댓글