본문 바로가기
데이터분석/Pandas

[Python] Pandas _ EDA _ 03 gpt

by nemonemonemo 2025. 8. 27.

코드 사용하는 과정에서 gpt와 함께 사용

  • 이 방법이나 접근이 내일 안 될 수도 있음
  • 사이트 UI도 변경될 수 있음
  • 모델로 갑자기 없어질 수 있고 변경될 수 있음
  1. openai API 관련해서 로그인이 필요함

  • gpt 기반으로 여러 pandas하고 연계한 패키지들이 있었는데,,
  • gpt 계속 변경이 되니,,,,버전 이슈로 지금 안 되거나 하는 친구들이 좀 있어요!!
  • ⇒ 그 중에서,,,하나의 방식으로 진행을 하려고 함!!!!!

  • langchain : LLM모델을 개발…오픈소스
!pip install langchain
!pip install openai
!pip install langchain-experimental
!pip install --upgrade pip
!pip install "langserve[all]"
!pip install langchain-cli
!pip install -U langchain-openai
#### 데이터 처리에 필요한 친구들..
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

from langchain_openai import ChatOpenAI
from langchain_experimental.agents import create_pandas_dataframe_agent

# ==> openai api에서 신청한 키값을ㅇ...
openai_api_key = ' 신청한 키 값 넣기 '

# ==> 내가 사용할 모델을 지정!!!!
#     모델에 따라서 잘 되는 것도,,좀 안 되는 것도 있으니...
# ==> +++ 내가 무엇을 할지!!!! + 비용 + (작은 모델에서 부터,,,출발,,,,)
model = ChatOpenAI( model="gpt-4o-mini", api_key=openai_api_key,temperature=0)

model
'''
ChatOpenAI(client=, async_client=, root_client=, root_async_client=, model_name='gpt-4o-mini', temperature=0.0, model_kwargs={}, openai_api_key=SecretStr('**********'))
'''

# 앞에서한 titanic.csv 파일!!!

!gdown 1GUltwE6D9Cv90AP8nfO_kezO0d7TAtg7
'''
Downloading...
From: <https://drive.google.com/uc?id=1GUltwE6D9Cv90AP8nfO_kezO0d7TAtg7>
To: /content/titanic_train.csv
100% 60.3k/60.3k [00:00<00:00, 53.0MB/s]
'''
# ==> 파일을 불러올 때 필요한 기능이 있어서 편히 할 수 있으면 파라미터 메뉴얼
path = '/content/titanic_train.csv'
data = pd.read_csv(path, index_col="PassengerId")
data.head()

# Agent를 만들어서 : gpt하고 나의 DF을 연결하려고 함!!!!
# ===> 내가 할 DF과 사용할 언어 모델을 연결해주는 친구!!!!!!
agent = create_pandas_dataframe_agent(
    model,  # <--- 사용할 LLM 모델을 세팅,,
    data,   # <--- 연결 대상인 DF
    agent_type="tool-calling", # etc.,.,,,,,,
    allow_dangerous_code=True,
    verbose= True
)
# +++ 메뉴얼을 보면서,,,본인에게 맞는 agent를 세팅하시면 됨!!
# agent한테 일을 시키면 됨!!!!
# ==> 구글링 하다 보면,,,예전 버전인 경우에 ,,ask
#                        요즘은 invoke
response = agent.invoke( "전체 데이터 갯수가 어떻게 되나요?")
response
'''

> Entering new AgentExecutor chain...

Invoking: `python_repl_ast` with `{'query': 'len(df)'}`

891전체 데이터 갯수는 891개입니다.

> Finished chain.
{'input': '전체 데이터 갯수가 어떻게 되나요?', 'output': '전체 데이터 갯수는 891개입니다.'}
'''

len(data)
'''
891
'''
q_text = '객실등급에 따른 생존율에 대한 그래프 그려주세요'
agent.invoke(q_text)

q_text= "객실등급에 따라서 생존에 대한 카운트그래프를 그려줘"
agent.invoke(q_text)

q_text= "객실등급에 따라서 생존에 대한 카운트그래프를 그려줘, hue 사용해서"
agent.invoke(q_text)

앞으로는 더 이러한 편한 도구들이 더 발전을 할 것입니다!!!

  • 사람이 별로 필요없어짐!!!!
  • 아는 상태에서,,,,도구를 잘 써서,,,,생산성이 높은 사람.
  • ** 어설프게 알아서는,,,롱런에서는 쉽지 않지 않을까....본인의 전문성!

도구들이 편하니까...."기획"..."아이디어” → 실질 결과물!!!

data.loc[:,"Pclass"].value_counts().plot(kind="barh")

'데이터분석 > Pandas' 카테고리의 다른 글

[Python] Pandas _ EDA _ 04 worldhappy(2)  (2) 2025.08.29
[Python] Pandas _ EDA _ 04 worldhappy  (4) 2025.08.28
[Python] Pandas _ EDA _ 02 titanic  (2) 2025.08.27
[Python] Pandas _ EDA _ 01 telecom  (2) 2025.08.26
[Python] Pandas 15 _ curl  (1) 2025.08.25