개요
Pandas는 데이터를 다루고 분석하기 위한 강력한 도구로, 다양한 직무에서 폭넓게 활용되고 있습니다. 데이터의 가공, 정제, 분석, 시각화 등 다양한 작업을 효과적으로 수행할 수 있는 Pandas는 특히 데이터 분야에서 일하는 전문가들에게 필수적인 라이브러리 중 하나입니다.
Pandas의 활용 직무
(당연히 직무별 졸라맨은 의미가 없습니다..)
Pandas는 다양한 직무에서 사용되며, 주로 데이터와의 상호 작용을 통해 가치를 창출하는 데 활용됩니다. 몇 가지 주요한 직무는 다음과 같습니다
1. 데이터 분석가
데이터 분석가들은 주로 Pandas를 사용하여 대량의 데이터를 처리하고 분석합니다. 데이터의 형태를 이해하고, 필요한 정보를 추출하며, 통계적인 분석을 수행하는 데에 활용됩니다. 이는 업무 의사결정에 필요한 인사이트를 도출하고 비즈니스 성과를 측정하는 데에 기여하기도 합니다.
2. 데이터 엔지니어
데이터 엔지니어들은 데이터를 추출하고, 전처리하며, 데이터베이스에 적재하는 등의 작업을 수행합니다. Pandas는 이러한 데이터 처리 작업에서 강력한 기능을 제공하여 데이터 엔지니어링 과정을 보다 효율적으로 만들어줍니다.
3. 데이터 과학자
데이터 과학자들은 주로 머신러닝 모델을 개발하고 평가하기 위해 데이터를 다룹니다. Pandas는 데이터 과학자들이 데이터를 탐색하고 모델 학습을 위한 데이터를 준비하는 데에 필수적으로 사용됩니다.
필요성
다양한 직무에서 Pandas를 사용해 데이터를 분석하고 활용합니다. 하지만 데이터는 정말 빠른 속도로 증가하고 또, 변화합니다. 데이터를 활용하는 직무에선 당연히 변화를 따라가야 합니다.
더욱 빠르게 데이터에 대한 이해 및 분석을 할 필요가 있습니다.
Pandas AI는 Pandas를 대체하는 기술은 아닙니다. Pandas를 통해 더 빠른 분석을 할 수 있도록 도와주는 도구입니다.
설치법
pip install pandasai
2023.12.02 python 3.11 기준으로 1.5.5 버전이 설치 되었습니다.
사용법
가장 기본적으로 많이 사용하는 chat 기능을 위한 방법을 소개합니다.
- pandas DataFrame을 불러온다.
- Smart DataFrame로 변환한다. (OpenAI Key 발급 필요)
- 질의한다.
1. pandas DataFrame을 불러온다.
아래는 예제를 위해 음식점 별 매출과 이익을 작성했습니다.
import pandas as pd
data = {
"restaurant": ["McDonald's", "Burger King", "KFC", "Subway", "Starbucks"],
"sales": [100, 50, 80, 60, 70],
"profit": [10, 30, 15, 10, 15],
}
df = pd.DataFrame(data)
print(df)
2. Smart DataFrame로 변환한다. (OpenAI Key 발급 필요)
질의를 하면 이를 Pandas 코드로 변경시키기 위해 LLM이 사용되므로 OpenAI를 위한 API Token이 필요합니다.
https://platform.openai.com/api-keys 로 이동해서 API 키를 발급받아야 합니다.
from pandasai import SmartDataframe
from pandasai.llm import OpenAI
llm = OpenAI(api_token="<API_TOKEN>")
sdf = SmartDataframe(df, config={"llm": llm})
3. 질의한다.
이제 분석하고자 하는 내용을 자연어로 입력하면 됩니다.
prompt = "<질문할 내용>"
sdf.chat(prompt)
1. 가게를 매출로 오름차순 정렬해줘
2. 매출은 높지만 영업이익이 낮은 가게는 어디야?
3. 매출은 높지만 영업이익이 낮은 가게는 어디야?, 한 문장으로 한국어로 말해줘
마무리
이 포스팅에서는 Pandas AI의 핵심 기능 중 하나인 Smart DataFrame을 활용하여 데이터 분석을 어떻게 더 효율적으로 수행할 수 있는지에 대해 살펴보았습니다.
포스팅에선 하나의 간단한 데이터에 대한 질의를 처리했지만 Pandas AI는 이미 다양한 소스 지정하여 데이터 소스 내 전체 데이터를 대상으로 질의를 수행할 수 있습니다.
또한 이 내용은 충분히 설명 가능합니다. (agent.explain()
)