背景
PandasAI 是一个创新的Python库,它将生成式人工智能的能力融入到了广受欢迎的数据处理库 pandas 中,从而使得与数据框(DataFrames)的交互变得更加自然和强大。通过PandasAI,用户可以用自然语言提出关于数据的问题、请求数据探索、清理及分析操作,而无需编写传统的Python代码或手动在Excel、CSV表格中进行查找。
安装方法
With pip
pip install pandasai
With poetry
poetry add pandasai
使用方法
简单示例
import pandas as pd
from pandasai.llm.openai import OpenAI
from pandasai import Agent
# 示例表格
sales_by_country = pd.DataFrame({
"国家": ["United States", "United Kingdom", "France", "Germany", "Italy", "Spain", "Canada", "Australia", "Japan", "China"],
"GDP": [19294482071552, 2891615567872, 2411255037952, 3435817336832, 1745433788416, 1181205135360, 1607402389504, 1490967855104, 4380756541440, 14631844184064],
"幸福度": [6.94, 7.16, 6.66, 7.07, 6.38, 6.4, 7.23, 7.22, 5.87, 5.12]
})
llm = OpenAI(api_token="YOUR_API_TOKEN")
agent = Agent(dfs = [sales_by_country],config={'llm':llm } )
ans = agent.chat('哪五个国家GDP最高的?')
print(ans)
加载本地表格
df = pd.read_excel("data.xlsx")
绘图
如果希望生成图表,直接在提问中表达出你的要求即可。
ans = agent.chat('根据每个国家GDP绘制条形图')
print(ans)

配置Agent
在初始化Agent的时候,还可以进行如下自定义配置
agent_config = {
'llm':llm, #具体使用的大模型
'verbose': True, #控制是否在屏幕上输出全部Pandasai日志
"enable_cache": False, #是否启用缓存
"data_viz_library" : 'pyecharts', #设置使用的画图库,默认为matplot
"open_charts": False, #画图后是否直接展示
"save_charts": True, #是否保存图片到本地
'max_retries': 1, #控制代码出错后重试的最大次数
'save_charts_path':f'exports/charts/temp_chart.png', #控制图片存储路径
"custom_whitelisted_dependencies": ['matplotlib','pyecharts','json','numpy','collections','re'],#控制用户希望使用到的python库
'dataframe_serializer':DataframeSerializerType.CSV, #控制以何种格式向模型展示表格
}
agent = Agent(
dfs = [df],
config = agent_config,
)
其他大模型
除了直接使用openAI外,PandasAi还提供了如下调用其他大模型的方法
# BambooLLM
from pandasai.llm import BambooLLM
llm = BambooLLM(api_key="my-bamboo-api-key")
#谷歌 PaLM
from pandasai.llm import GooglePalm
llm = GooglePalm(api_key="my-google-cloud-api-key")
#谷歌 Vertexai
'''
为了通过 Vertexai api 使用 Google PaLM 模型,您需要具备:
Google Cloud 项目
项目设置区域
安装可选依赖项google-cloud-aiplatform
认证gcloud
'''
from pandasai.llm import GoogleVertexAI
llm = GoogleVertexAI(project_id="generative-ai-training",
location="us-central1",
model="text-bison@001")
#Azure OpenAI
from pandasai.llm import AzureOpenAI
llm = AzureOpenAI(
api_token="my-azure-openai-api-key",
azure_endpoint="my-azure-openai-api-endpoint",
api_version="2023-05-15",
deployment_name="my-deployment-name"
)
#HuggingFace 模型
from pandasai import SmartDataframe
llm = HuggingFaceTextGen( inference_server_url="******")
应用场景
PandasAI因为其独特的利用自然语言与表格进行对话从而实现数据分析的特点,使其能在多种场景中发挥作用。
- 对于数据科学家和分析师,PandasAI可以提高工作效率,减少繁琐编码,使他们能更快地从数据中获取洞察。
- 对于编程经验有限的业务人员或研究人员,此库降低了数据分析的技术门槛,让他们能够直接与数据对话,专注于问题而非编程细节。
- 教育领域,PandasAI可以作为教学辅助工具,帮助学生理解数据分析概念,同时实践自然语言处理和AI技术在实际中的应用。