자연어를 사용하여 데이터 분석

자연어를 활용하여 데이터 분석을 수행하는 것에 흥미를 느끼시나요? 파이썬 라이브러리인 PandasAI를 통해 이 목표를 달성하는 방법을 알아볼 수 있습니다.

오늘날 데이터가 중심이 되는 세상에서 데이터를 이해하고 분석하는 능력은 필수적입니다. 하지만 전통적인 데이터 분석 방식은 때때로 복잡할 수 있습니다. PandasAI는 이러한 어려움을 해결하고자 등장했습니다. 자연어를 사용하여 데이터와 상호작용할 수 있게 함으로써 데이터 분석 과정을 간소화합니다.

PandasAI는 사용자의 질문을 데이터 분석을 위한 코드로 변환하는 방식으로 작동합니다. 이 과정은 널리 사용되는 파이썬 라이브러리인 pandas를 기반으로 합니다. 팬더AI는 생성형 AI 기능을 활용하여 데이터 분석 및 조작 도구인 pandas를 확장하는 파이썬 라이브러리입니다. pandas를 대체하는 것이 아니라 보완하는 역할을 합니다.

PandasAI는 pandas(및 다른 데이터 분석 라이브러리)에 대화형 기능을 추가하여, 사용자가 자연어 쿼리를 통해 데이터와 직접 상호작용할 수 있게 합니다.

이 튜토리얼에서는 PandasAI를 설정하고, 실제 데이터셋과 함께 사용해보고, 데이터 플롯을 생성하고, 유용한 단축키를 활용하며, 이 강력한 도구의 장점과 한계를 파악하는 단계를 안내합니다.

튜토리얼을 마치면 자연어를 사용하여 데이터 분석을 더 쉽고 직관적으로 수행할 수 있게 될 것입니다.

자, PandasAI를 통해 자연어 데이터 분석의 매혹적인 세계를 탐험해 봅시다!

개발 환경 설정

PandasAI를 시작하려면 먼저 PandasAI 라이브러리를 설치해야 합니다.

이 프로젝트에서는 Jupyter Notebook을 사용하지만, 필요에 따라 Google Colab 또는 VS Code를 사용할 수도 있습니다.

Open AI LLM(대규모 언어 모델)을 사용하려는 경우, 원활한 환경을 위해 Open AI 파이썬 SDK를 설치하는 것도 중요합니다.

  # Pandas AI 설치
  !pip install pandas-ai
  # Pandas AI는 OpenAI의 언어 모델을 사용하므로, OpenAI Python SDK 설치 필요
  !pip install openai
  

이제 필요한 모든 라이브러리를 가져옵니다.

  # 필수 라이브러리 임포트
  import pandas as pd
  import numpy as np
  
  # PandasAI 및 관련 구성 요소 임포트
  from pandasai import PandasAI, SmartDataframe
  from pandasai.llm.openai import OpenAI
  

PandasAI를 사용한 데이터 분석의 핵심 요소는 API 키입니다. 이 도구는 자연어 쿼리로부터 코드를 생성하는 데 사용되는 여러 LLM(대규모 언어 모델)과 LangChains 모델을 지원합니다. 이로 인해 데이터 분석이 더욱 접근하기 쉽고 사용자 친화적으로 변합니다.

PandasAI는 다양한 유형의 모델과 함께 작동할 수 있는 다재다능한 도구입니다. 여기에는 Hugging Face 모델, Azure OpenAI, Google PALM 및 Google VertexAI 등이 포함됩니다. 이러한 각 모델은 PandasAI의 기능을 향상시키는 고유한 강점을 제공합니다.

이러한 모델을 사용하려면 적절한 API 키가 필요하다는 점을 기억해야 합니다. 이 키를 통해 요청을 인증하고 데이터 분석 작업에서 이러한 고급 언어 모델의 기능을 활용할 수 있습니다. 따라서 PandasAI를 프로젝트에 설정할 때 API 키를 준비해두세요.

API 키를 얻은 후 환경 변수로 내보낼 수 있습니다.

다음 단계에서는 OpenAI 및 Hugging Face Hub의 다양한 대규모 언어 모델(LLM)과 함께 PandasAI를 사용하는 방법을 살펴보겠습니다.

대규모 언어 모델 사용

LLM을 인스턴스화하고 SmartDataFrame 또는 SmartDatalake 생성자에 전달하여 LLM을 선택하거나 pandasai.json 파일에서 지정할 수 있습니다.

모델에 하나 이상의 매개변수가 필요한 경우, 이를 생성자에 전달하거나 다음과 같이 pandasai.json 파일의 llm_options 매개변수에 지정할 수 있습니다.

  {
    "llm": "OpenAI",
    "llm_options": {
      "api_token": "API_TOKEN_GOES_HERE"
    }
  }
  

OpenAI 모델 사용 방법

OpenAI 모델을 사용하려면 OpenAI API 키가 필요합니다. 여기에서 얻을 수 있습니다.

API 키를 얻은 후 이를 사용하여 OpenAI 객체를 인스턴스화할 수 있습니다.

  # 이전 단계에서 모든 필수 라이브러리를 임포트했습니다.
  
  llm = OpenAI(api_token="my-api-key")
  pandas_ai = SmartDataframe("data.csv", config={"llm": llm})
  

“my-api-key”를 실제 API 키로 바꾸는 것을 잊지 마세요.

대안으로, OPENAI_API_KEY 환경 변수를 설정하고 API 키를 전달하지 않고 OpenAI 객체를 인스턴스화할 수 있습니다.

  # OPENAI_API_KEY 환경 변수 설정
  llm = OpenAI() # API 키를 전달할 필요가 없으며, 환경 변수에서 읽어옵니다.
  pandas_ai = SmartDataframe("data.csv", config={"llm": llm})
  

명시적 프록시 뒤에 있는 경우, OpenAI 객체를 인스턴스화할 때 openai_proxy를 지정하거나, OPENAI_PROXY 환경 변수를 설정하여 전달할 수 있습니다.

중요 참고: API 키를 사용하여 데이터 분석을 위해 PandasAI 라이브러리를 사용할 때 토큰 사용량을 추적하여 비용을 관리하는 것이 중요합니다.

이 작업을 어떻게 수행해야 할지 궁금하신가요? 다음 토큰 카운터 코드를 실행하면 토큰 사용량과 관련 비용을 명확히 파악할 수 있습니다. 이렇게 하면 리소스를 효과적으로 관리하고 예상치 못한 청구를 피할 수 있습니다.

다음과 같이 프롬프트에서 사용된 토큰 수를 계산할 수 있습니다.

  """pandas 데이터프레임과 함께 PandasAI 사용 예시"""
  
  from pandasai import SmartDataframe
  from pandasai.llm import OpenAI
  from pandasai.helpers.openai_info import get_openai_callback
  import pandas as pd
  llm = OpenAI()
  # conversational=False는 사용량과 비용을 줄이기 위한 설정입니다.
  df = SmartDataframe("data.csv", {"llm": llm, "conversational": False})
  
  with get_openai_callback() as cb:
      response = df.chat("북미 국가들의 GDP 합계를 계산하세요.")
      print(response)
      print(cb)
  

다음과 같은 결과를 얻을 수 있습니다:

  # 북미 국가들의 GDP 합계는 19,294,482,071,552입니다.
  
  # 사용된 토큰: 375
  # 프롬프트 토큰: 210
  # 완료 토큰: 165
  # 총 비용 (USD): $ 0.000750
  

크레딧이 제한되어 있다면 총 비용을 기록해 두는 것을 잊지 마세요!

Hugging Face 모델 사용 방법

HuggingFace 모델을 사용하려면 HuggingFace API 키가 필요합니다. 여기에서 HuggingFace 계정을 만들고, 여기에서 API 키를 받으세요.

API 키가 있으면 이를 사용하여 HuggingFace 모델 중 하나를 인스턴스화할 수 있습니다.

현재 PandasAI는 다음 HuggingFace 모델을 지원합니다.

  • 스타코더: bigcode/starcoder
  • 팔콘: tiiuae/falcon-7b-instruct
  from pandasai.llm import Starcoder, Falcon
  llm = Starcoder(api_token="my-huggingface-api-key")
                      # 또는
  llm = Falcon(api_token="my-huggingface-api-key")
  df = SmartDataframe("data.csv", config={"llm": llm})
  

대안으로, HUGGINGFACE_API_KEY 환경 변수를 설정하고 API 키를 전달하지 않고 HuggingFace 객체를 인스턴스화할 수 있습니다.

  from pandasai.llm import Starcoder, Falcon
  llm = Starcoder() # API 키를 전달할 필요가 없으며, 환경 변수에서 읽어옵니다.
                                       # 또는
  llm = Falcon() # API 키를 전달할 필요가 없으며, 환경 변수에서 읽어옵니다.
  df = SmartDataframe("data.csv", config={"llm": llm})
  

Starcoder와 Falcon은 모두 Hugging Face에서 사용 가능한 LLM 모델입니다.

우리는 개발 환경을 성공적으로 설정하고, OpenAI 및 Hugging Face LLM 모델을 모두 사용하는 방법을 살펴보았습니다. 이제 데이터 분석 여정을 시작해 봅시다.

여기서는 Big Mart의 여러 매장에서 판매되는 다양한 제품에 대한 정보를 담고 있는 ‘Big Mart Sales’ 데이터셋을 사용할 것입니다. 이 데이터셋은 12개의 열과 8524개의 행으로 구성되어 있습니다. 기사 마지막 부분에서 링크를 통해 이 데이터셋을 얻을 수 있습니다.

PandasAI를 사용한 데이터 분석

필요한 모든 라이브러리를 성공적으로 설치하고 임포트했으므로, 이제 데이터셋을 로드해 보겠습니다.

데이터셋 로드

LLM을 인스턴스화하고 SmartDataFrame에 전달하여 LLM을 선택할 수 있습니다. 기사 마지막 부분에서 데이터셋 링크를 얻을 수 있습니다.

  # 장치에서 데이터셋 로드
  path = r"D:\Pandas AI\Train.csv"
  df = SmartDataframe(path)
  

OpenAI LLM 모델 사용

데이터를 로드한 후, PandasAI를 사용하기 위해 OpenAI의 LLM 모델을 사용하겠습니다.

  llm = OpenAI(api_token="API_Key")
  pandas_ai = PandasAI(llm, conversational=False)
  

좋습니다! 이제 프롬프트를 사용해 보겠습니다.

데이터셋의 처음 6개 행 출력

다음 지침을 제공하여 처음 6개 행을 로드해 보겠습니다.

  Result = pandas_ai(df, "데이터를 표 형식으로 처음 6개 행을 보여주세요.")
  Result
  

정말 빠르네요! 데이터셋을 이해해 봅시다.

데이터프레임의 기술 통계 생성

  # 기술 통계 얻기
  Result = pandas_ai(df, "데이터의 설명을 표 형식으로 보여주세요.")
  Result
  

Item_Weight에는 7060개의 값이 있습니다. 아마도 누락된 값이 있을 수 있습니다.

누락된 값 찾기

pandas ai를 사용하여 누락된 값을 찾는 방법은 두 가지가 있습니다.

  # 누락된 값 찾기
  Result = pandas_ai(df, "데이터에서 누락된 값을 표 형식으로 보여주세요.")
  Result
  

# 데이터 정리 바로가기

  df = SmartDataframe('data.csv')
  df.clean_data()
  

이 바로가기는 데이터프레임에서 데이터 정리를 수행합니다.

이제 누락된 null 값을 채워 보겠습니다.

누락된 값 채우기

  # 누락된 값 채우기
  result = pandas_ai(df, "Item Weight는 중앙값으로, Item outlet size null 값은 최빈값으로 채우고, 데이터에서 누락된 값을 표 형식으로 보여주세요.")
  result
  

Null 값을 채우는 것은 유용한 방법이지만, Null 값을 채우는 동안 몇 가지 문제가 발생했습니다.

# Null 값 채우기 단축키

  df = SmartDataframe('data.csv')
  df.impute_missing_values()
  

이 바로가기는 데이터프레임의 누락된 값을 대체합니다.

Null 값 삭제

df에서 모든 null 값을 삭제하려면 이 방법을 시도해 보세요.

  result = pandas_ai(df, "누락된 값이 있는 행을 inplace=True로 삭제하세요.")
  result
  

데이터 분석은 기업, 정부, 연구자 및 개인이 단기 및 장기 동향을 파악하는 데 매우 중요합니다.

설립 이후 몇 년간의 전반적인 매출 추세를 알아보겠습니다.

매출 동향 파악

  # 매출 추세 파악
  result = pandas_ai(df, "매장 설립 이후 연도별 매출의 전반적인 추세는 어떻습니까?")
  result
  

처음 플롯을 생성하는 데는 시간이 조금 걸렸지만, 커널을 다시 시작하고 모두 실행한 후에는 더 빠르게 실행되었습니다.

# 선 그래프 플롯 단축키

  df.plot_line_chart(x = ['a', 'b', 'c'], y = [1, 2, 3])
  

이 단축키는 데이터프레임의 선 그래프를 그립니다.

왜 추세가 하락하는지 궁금할 것입니다. 1989년부터 1994년까지의 데이터가 없기 때문입니다.

최고 매출 연도 찾기

이제 매출이 가장 높은 연도를 알아보겠습니다.

  # 최고 매출 연도 찾기
  result = pandas_ai(df, "어느 해에 매출이 가장 높은지 설명해주세요.")
  result
  

따라서 매출이 가장 높은 해는 1985년입니다.

그런데 어떤 품목의 평균 매출이 가장 높고, 어떤 품목의 평균 매출이 가장 낮은지 알고 싶습니다.

최고 및 최저 평균 매출

  # 최고 및 최저 평균 매출 찾기
  result = pandas_ai(df, "어떤 품목 유형이 평균 매출이 가장 높고, 어떤 품목 유형이 가장 낮습니까?")
  result
  

전분 식품의 평균 매출이 가장 높고, 기타 식품의 평균 매출이 가장 낮습니다. 다른 제품의 매출이 가장 낮은 값을 원하지 않는다면 필요에 따라 프롬프트를 개선할 수 있습니다.

훌륭합니다! 이제 다양한 매장의 매출 분포를 알아보고 싶습니다.

다양한 매장 유형별 매출 분포

매장은 슈퍼마켓 유형 1/2/3과 식료품점 등 4가지 유형이 있습니다.

  # 매장 설립 이후 다양한 매장 유형별 매출 분포
  response = pandas_ai(df, "막대 그래프를 사용하여 매장 설립 이후 다양한 매장 유형별 매출 분포를 시각화하고, 플롯 크기는 (13, 10)으로 설정하세요.")
  response
  

이전 프롬프트에서 관찰한 것처럼 최고 매출은 1985년에 발생했으며, 이 플롯은 슈퍼마켓 유형 3 매장에서 1985년에 최고 매출을 기록했음을 강조합니다.

# 막대 그래프 플롯 단축키

  df = SmartDataframe('data.csv')
  df.plot_bar_chart(x = ['a', 'b', 'c'], y = [1, 2, 3])
  

이 단축키는 데이터프레임의 막대 그래프를 그립니다.

# 히스토그램 플롯 단축키

  df = SmartDataframe('data.csv')
  df.plot_histogram(column = 'a')
  

이 단축키는 데이터프레임의 히스토그램을 표시합니다.

이제 ‘저지방’ 및 ‘일반’ 지방 함량 품목의 평균 판매량이 얼마나 되는지 알아보겠습니다.

지방 함량 품목의 평균 판매량 찾기

  # 열 값을 사용하여 행의 인덱스 찾기
  result = pandas_ai(df, "'저지방' 및 '일반' 품목 지방 함량의 평균 판매량은 얼마입니까?")
  result
  

이와 같은 프롬프트를 사용하면 두 개 이상의 제품을 비교할 수 있습니다.

품목 유형별 평균 판매량

모든 제품을 평균 판매량과 비교하고 싶습니다.

  # 품목 유형별 평균 판매량
  result = pandas_ai(df, "지난 5년간 각 품목 유형의 평균 판매량은 얼마입니까? 원형 그래프를 사용하고 크기는 (6, 6)으로 설정하세요.")
  result
  

원형 그래프의 모든 섹션이 비슷하게 보입니다. 그 이유는 판매 수치가 거의 동일하기 때문입니다.

# 원형 그래프 그리기 단축키

  df.plot_pie_chart(labels = ['a', 'b', 'c'], values = [1, 2, 3])
  

이 단축키는 데이터프레임의 원형 그래프를 그립니다.

가장 많이 판매된 상위 5개 품목 유형

평균 판매량을 기준으로 모든 제품을 비교했지만, 이제 판매량이 가장 높은 상위 5개 품목을 식별해 보겠습니다.

  # 가장 많이 판매된 상위 5개 품목 찾기
  result = pandas_ai(df, "평균 판매량을 기준으로 가장 많이 판매되는 상위 5개 품목은 무엇입니까? 표 형식으로 작성하세요.")
  result
  

예상대로, 전분 식품은 평균 매출을 기준으로 가장 많이 판매되는 품목입니다.

가장 적게 판매된 상위 5개 품목 유형

  result = pandas_ai(df, "평균 판매량을 기준으로 가장 적게 판매되는 상위 5개 품목은 무엇입니까?")
  result
  

탄산음료가 가장 적게 판매되는 카테고리에 있는 것을 보면 놀라실 수도 있습니다. 그러나 이 데이터는 2008년까지만 해당되며, 탄산음료의 인기는 몇 년 후부터 시작되었다는 점을 유념하는 것이 중요합니다.

제품 카테고리 판매

여기에서는 “항목 유형” 대신 “제품 카테고리”라는 단어를 사용했는데, PandasAI는 여전히 플롯을 생성하여 비슷한 단어에 대한 이해도를 보여주었습니다.

  result = pandas_ai(df, "지난 회계연도 동안의 다양한 제품 카테고리의 판매량을 보여주는 누적 막대 그래프를 큰 크기로 제공해주세요.")
  result
  

나머지 단축키는 여기에서 확인할 수 있습니다.

우리가 프롬프트를 작성하고 PandasAI에 지침을 제공할 때 PandasAI는 특정 프롬프트를 기반으로만 결과를 제공한다는 것을 알 수 있습니다. 이전 프롬프트를 분석하여 더 정확한 답변을 제공하지 않습니다.

하지만 채팅 에이전트를 사용하면 이 기능도 구현할 수 있습니다.

채팅 에이전트

채팅 에이전트를 사용하면 에이전트가 대화 전반에 걸쳐 컨텍스트를 유지하는 동적 대화에 참여할 수 있습니다. 이를 통해 더욱 상호적이고 의미 있는 교류가 가능합니다.

이러한 상호작용을 개선하는 주요 기능으로는 에이전트가 대화 기록을 기억하여 원활한 상황 인식 상호작용이 가능하도록 하는 컨텍스트 보존이 있습니다. 설명 질문 방법을 사용하면 제공된 정보를 완전히 이해할 수 있도록 대화의 모든 측면에 대한 설명을 요청할 수 있습니다.

또한 설명 방법을 사용하면 에이전트가 특정 솔루션이나 응답에 도달한 방법에 대한 자세한 설명을 얻을 수 있으므로 에이전트의 의사 결정 과정에 대한 투명성과 통찰력을 제공할 수 있습니다.

채팅 에이전트와의 상호 작용을 개선하기 위해 자유롭게 대화를 시작하고 설명을 찾고 설명을 탐색해 보세요!

  from pandasai import Agent
  agent = Agent(df, config={"llm": llm}, memory_size=10)
  result = agent.chat("MRP가 가장 높은 상위 5개 품목은 무엇입니까?")
  result
  

SmartDataframe 또는 SmartDatalake와 달리 에이전트는 대화 상태를 추적하고 여러 차례의 대화에 응답할 수 있습니다.

이제 PandasAI의 장점과 한계를 살펴보겠습니다.

PandasAI의 장점

Pandas AI를 사용하면 데이터 분석을 위한 유용한 도구로 활용할 수 있는 여러 가지 이점이 있습니다.

  • 접근성: PandasAI는 데이터 분석을 단순화하여 광범위한 사용자가 액세스할 수 있도록 합니다. 기술적 배경에 관계없이 누구나 이를 사용하여 데이터에서 통찰력을 추출하고 비즈니스 질문에 답할 수 있습니다.
  • 자연어 쿼리: 자연어 쿼리를 사용하여 직접 질문하고 데이터에서 답변을 받을 수 있는 기능은 데이터 탐색 및 분석을 더욱 사용자 친화적으로 만듭니다. 이 기능을 사용하면 기술적인 지식이 없는 사용자도 데이터와 효과적으로 상호 작용할 수 있습니다.
  • 에이전트 채팅 기능: 채팅 기능을 통해 사용자는 대화형으로 데이터에 참여할 수 있으며, 에이전트 채팅 기능은 이전 채팅 기록을 활용하여 상황 인식 답변을 제공합니다. 이는 데이터 분석에 대한 역동적이고 대화적인 접근 방식을 촉진합니다.
  • 데이터 시각화: PandasAI는 히트맵, 산점도, 막대 그래프, 원형 차트, 선 그래프 등을 포함한 다양한 데이터 시각화 옵션을 제공합니다. 이러한 시각화는 데이터 패턴과 추세를 이해하고 제시하는 데 도움이 됩니다.
  • 시간 절약 단축키: 단축키 및 시간 절약 기능을 사용하면 데이터 분석 프로세스가 간소화되어 사용자가 보다 효율적이고 효과적으로 작업할 수 있습니다.
  • 파일 호환성: PandasAI는 CSV, Excel, Google Sheets 등을 포함한 다양한 파일 형식을 지원합니다. 이러한 유연성 덕분에 사용자는 다양한 소스와 형식의 데이터를 사용할 수 있습니다.
  • 사용자 정의 프롬프트: 사용자는 간단한 지침과 Python 코드를 사용하여 사용자 정의 프롬프트를 만들 수 있습니다. 이 기능을 통해 사용자는 특정 요구 사항 및 쿼리에 맞게 데이터와의 상호 작용을 맞춤화할 수 있습니다.
  • 변경 사항 저장: 데이터프레임에 대한 변경 사항을 저장하는 기능을 통해 작업 내용을 보존하고 언제든지 분석을 다시 방문하고 공유할 수 있습니다.
  • 사용자 정의 응답: 사용자 정의 응답을 생성하는 옵션을 통해 사용자는 특정 동작이나 상호 작용을 정의할 수 있으므로 도구가 더욱 다양해집니다.
  • 모델 통합: PandasAI는 Hugging Face, Azure, Google Palm, Google VertexAI 및 LangChain 모델을 포함한 다양한 언어 모델을 지원합니다. 이러한 통합으로 도구의 기능이 향상되고 고급 자연어 처리 및 이해가 가능해졌습니다.
  • 내장된 LangChain 지원: LangChain 모델에 대한 내장된 지원은 사용 가능한 모델과 기능의 범위를 더욱 확장하여 데이터에서 파생될 수 있는 분석의 깊이와 통찰력을 향상시킵니다.
  • 이름 이해: PandasAI는 열 이름과 실제 용어 간의 상관 관계를 이해하는 기능을 보여줍니다. 예를 들어, 프롬프트에 ‘항목 유형’ 대신 ‘제품 카테고리’와 같은 용어를 사용하더라도 도구는 여전히 관련성이 있고 정확한 결과를 제공할 수 있습니다. 동의어를 인식하고 이를 적절한 데이터 열에 매핑하는 이러한 유연성은 사용자 편의성과 자연어 쿼리에 대한 도구의 적응성을 향상시킵니다.

PandasAI는 여러 가지 장점을 제공하지만, 사용자가 알아야 할 몇 가지 제한 사항과 과제도 있습니다.

PandasAI의 한계

제가 관찰한 몇 가지 제한 사항은 다음과 같습니다.

  • API 키 요구 사항: PandasAI를 사용하려면 API 키가 필수적입니다. OpenAI 계정에 충분한 크레딧이 없으면 서비스를 이용하지 못할 수 있습니다. 그러나 OpenAI가 신규 사용자에게 5달러 크레딧을 제공하여 플랫폼을 처음 접하는 사용자도 액세스할 수 있다는 점은 주목할 가치가 있습니다.
  • 처리 시간: 때로는 높은 사용량이나 서버 부하로 인해 서비스 결과 제공이 지연될 수 있습니다. 사용자는 서비스를 쿼리할 때 잠재적인 대기 시간을 고려해야 합니다.
  • 프롬프트 해석: 프롬프트를 통해 질문할 수는 있지만, 답변을 설명하는 시스템의 기능이 완전히 개발되지 않았을 수 있으며 설명의 품질이 다를 수 있습니다. PandasAI의 이러한 측면은 향후 추가 개발을 통해 개선될 수 있습니다.
  • 프롬프트 민감도: 사용자는 프롬프트를 작성할 때 주의해야 합니다. 약간만 변경해도 결과가 달라질 수 있기 때문입니다. 구문 및 프롬프트 구조에 대한 이러한 민감도는 특히 데이터 도표 또는 보다 복잡한 쿼리로 작업할 때 결과의 일관성에 영향을 미칠 수 있습니다.
  • 복잡한 프롬프트에 대한 제한 사항: PandasAI는 매우 복잡한 프롬프트나 쿼리를 간단한 프롬프트나 쿼리만큼 효과적으로 처리하지 못할 수 있습니다. 사용자는 질문의 복잡성을 염두에 두고 도구가 자신의 특정 요구 사항에 적합한지 확인해야 합니다.
  • 일관되지 않은 DataFrame 변경: 사용자는 ‘Inplace=True’를 지정한 경우에도 Null 값을 채우거나 Null 값 행을 삭제하는 등 DataFrame을 변경할 때 문제가 있다고 보고했습니다. 이러한 불일치는 데이터를 수정하려는 사용자에게 어려움을 초래할 수 있습니다.
  • 다양한 결과: 커널을 다시 시작하거나 프롬프트를 다시 실행할 때 이전 실행과 다른 결과나 데이터 해석을 받을 수 있습니다. 이러한 가변성은 일관되고 재현 가능한 결과를 요구하는 사용자에게는 어려울 수 있습니다. 모든 프롬프트에 적용할 수는 없습니다.

데이터셋은 여기에서 다운로드할 수 있습니다.

코드는 GitHub에서 사용할 수 있습니다.