跳至主要内容

Pandas AI 入门

用 AI 让您的 pandas 体验更进一步:驱动的数据分析。
Abid Ali Awan
Abid Ali Awan

创建您的免费账户

实践并学习路径你的进步。

使用 Google 继续继续即表示您接受我们的 使用条款,我们的 隐私政策 ,并且您的数据存储在美国。

什么是 Pandas AI?

Pandas AI 是一个 Python 库,利用生成式 AI 模型来增强 pandas 的能力。它的设计初衷是补充 pandas 库,这是一款广泛用于数据分析与处理的工具。

用户可以使用自然语言对 pandas 数据框进行摘要。此外,您还可以用它绘制复杂可视化、操作数据框,并生成业务洞见。

图片来源:Pandas-AI

Pandas AI 对初学者友好;即便技术背景不强的用户也能用它完成复杂的数据分析任务。它有助于更快分析数据并得出有意义的结论。

开始使用 Pandas AI

本节我们将学习如何安装并设置 Pandas AI 以进行数据分析。

首先,我们使用 pip 安装 Pandas AI。

pip install pandasai

可选安装:我们也可以通过如下代码安装 Google PaLM 依赖。

pip install pandasai[google]

其次,我们需要获取 OpenAI API 密钥并将其存为环境变量,可参考教程 Using GPT-3.5 and GPT-4 via the OpenAI API in Python。

最后,我们需导入必要函数,将 OpenAI 密钥设置到 LLM API 封装器中,并实例化一个 PandasAI 对象。之后我们将用该对象在单个或多个 pandas 数据框上运行提示词。

import os
from pandasai import PandasAI
from pandasai.llm.openai import OpenAI


openai_api_key = os.environ["OPENAI_API_KEY"]

llm = OpenAI(api_token=openai_api_key)

pandas_ai = PandasAI(llm)

除了 OpenAI GPT-3.5,您还可以使用适配 Google PALM(Bison)的 LLM API 封装器,或 HuggingFace 上的开源模型,如 Starcoder 和 Falcon。

from pandasai.llm.starcoder import Starcoder
from pandasai.llm.falcon import Falcon
from pandasai.llm.google_palm import GooglePalm

# GooglePalm
llm = GooglePalm(api_token="YOUR_Google_API_KEY")

# Starcoder
llm = Starcoder(api_token="YOUR_HF_API_KEY")

# Falcon
llm = Falcon(api_token="YOUR_HF_API_KEY")

您也可以设置一个 .env 文件,从而无需再设置 api_token。为此,需按以下模板将 API 密钥添加到 .env 文件:

HUGGINGFACE_API_KEY=
OPENAI_API_KEY=

Pandas AI 的基础用法

在这个基础示例中,我们将使用 pandas 库加载 Netflix 影片数据。该数据集包含 8,500 多部 Netflix 上可观看的电影和剧集。

import pandas as pd

df = pd.read_csv("netflix_dataset.csv", index_col=0)
df.head(3)

请参阅我们的 Python pandas 教程,了解您可以用 pandas 库完成的全部操作。

通过传入数据框和提示词,我们可以让 Pandas AI 生成分析并对数据集进行处理。在此示例中,我们将提示 Pandas AI 显示时长最长的五部电影的记录。

pandas_ai.run(df, prompt='What are 5 longest duration movies?')

如我们所见,时长最长的影片是 Black Mirror,312 分钟。

让我们再要求它只显示这五部时长最长的电影名称。

pandas_ai.run(df, prompt='List the names of the 5 longest duration movies.')
['Black Mirror: Bandersnatch', 'Headspace: Unwind Your Mind', 'The School of Mischief', 'No Longer kids', 'Lock Your Girls In']

注意:如果您希望进一步强化隐私保护,可以在实例化 PandasAI 时传入 enforce_privacy = True,这样将不会把数据集的表头(仅发送列名)传给 LLM。

我们甚至可以让 Pandas AI 执行分组、排序与合并等复杂任务。

pandas_ai.run(df, prompt='What is the average duration of tv shows based on country? Make sure the output is sorted.')
country
Denmark, Singapore, Canada, United States    10.0
United States, Mexico, Colombia               7.0
Canada, United States, France                 5.5
United Kingdom, Ireland                       5.0
Canada, United Kingdom                        5.0
                                             ... 
Spain, Cuba                                   1.0
Germany, France, Russia                       1.0

注意:某些技术性提示可能无法奏效,尤其是在要求按列分组时。

Pandas AI 的高级用法

Pandas AI 的高级用例包括使用多个数据框生成复杂的数据可视化和业务分析。

在第一个示例中,我们可以编写提示词来生成按年份统计标题数量并按类型分类的柱状图。

pandas_ai.run(df, prompt='Plot the bar chart of type of media for each year release, using different colors.')

注意:您可以通过将 save_charts 参数设为 True 来保存 Pandas AI 生成的任何图表。例如,PandasAI(llm, save_charts=True)。图表将保存在 ./pandasai/exports/charts directory 中。

在第二个示例中,我们将创建三个数据框,并使用这三个数据框让 Pandas AI 生成分析。

Pandas AI 会先基于 "store" 将 df1 与 df2 连接,再基于 "location" 将 df2 与 df3 连接。随后它会处理合并后的数据集,并在数秒内给出结果。若由数据科学家来理解数据并给出解决方案,至少需要 10 分钟。

# DataFrame 1
df1 = pd.DataFrame({
    'sales': [100, 200, 300],
    'store': ['Walmart', 'Target', 'Walmart']    
    })

# DataFrame 2        
df2 = pd.DataFrame({        
    'revenue': [400, 500, 600],
    'store': ['Walmart', 'Target', 'Walmart'],
    'location': ['North', 'South', 'West']})

# DataFrame 3  
df3 = pd.DataFrame({
    'profit': [700, 800, 900],    
    'location': ['North', 'South', 'West'],
    'employees': [20, 25, 30]})  

pandas_ai.run([df1,df2,df3], prompt='How many employees work at Walmart?')
50

您也可以通过学习 Data Manipulation with pandas 课程来执行复杂的数据分析任务。

Pandas AI 命令行界面(CLI)

Pandas AI CLI 目前为实验性工具,您可以通过克隆仓库并进入项目目录进行安装。

!git clone https://github.com/gventuri/pandas-ai.git
%cd pandas-ai

随后,我们将使用 poetry 创建并激活虚拟环境。

!poetry shell

注意:如果您的系统未安装 poetry,可通过 curl 安装 -sSL https://install.python-poetry.org | python3 -

在已激活的环境中使用以下代码安装依赖。

!poetry install

最后,打开终端使用 Pandas AI CLI 工具。您需要提供数据集、模型名称和提示词。如果未提供 token,pai 将从 .env 文件中获取。

!pai -d "netflix_dataset.csv" -m "openai" -p "What are 5 longest duration movies?"
  • -d, --dataset:数据集的文件路径。
  • -t, --token:您的 HuggingFace 或 OpenAI API token。
  • -m, --model:要使用的 LLM 模型。选项包括:openai、open-assistant、starcoder, falcon、azure-openai 或 google-palm。
  • -p, --prompt:PandasAI 要执行的提示词。

阅读 Pandas AI 的文档,了解更多可简化您工作流程的功能与特性。

结语

通过借助大型语言模型从数据集中生成洞见,Pandas AI 有潜力重塑数据分析方式。

数据科学家通常需要花费大量时间清洗、探索和可视化数据,而 Pandas AI 能自动化其中许多重复性任务。

不过,与所有 AI 工具一样,Pandas AI 仍有局限,无法完全取代人工。分析结果往往需要人工验证以确保准确性并识别边界情况。

在本文中,我们学习了如何安装、设置并使用 Pandas AI 进行数据分析。我们利用 Pandas AI 执行数据分析任务、生成数据可视化,并结合多个数据框获取业务洞见。若您希望改进提示词以获得更佳结果,建议学习 Introduction to ChatGPT 课程或参考数据科学版 ChatGPT 速查表。

Abid Ali Awan

作者

Abid Ali Awan

作为一名持证的数据科学家,我热衷于利用前沿技术打造创新的机器学习应用。凭借在语音识别、数据分析与报告、MLOps、对话式人工智能以及自然语言处理方面的扎实背景,我不断打磨构建智能系统的能力,力求带来切实影响。除技术专长外,我也擅长沟通,能够将复杂概念提炼为清晰、简明的表述。因此,我成为数据科学领域备受关注的博主,与不断壮大的数据专业人士社区分享洞见与实践经验。目前,我专注于内容创作与编辑,借助大语言模型打造有力且吸引人的内容,帮助企业与个人更好地发挥数据价值。

主题