PandasAI:结合生成式AI的数据分析库

在数据领域,智能技术的应用不断引发变革。企业正在探索如何最大化利用这些创新技术,例如ChatGPT。这将帮助任何企业获得竞争优势。一项新的尖端创新是将基于GenAI的数据分析库“PandasAI”引入到熟知的Pandas库中。这项创新由OpenAI实现。与其他生成式AI领域不同,PandasAI将GenAI技术应用于Pandas分析工具中。顾名思义,它直接将人工智能应用于传统的Pandas库。Pandas库在Python中的数据预处理和数据可视化任务中变得非常流行,而这项创新使其更加出色。

学习目标

理解PandasAI的新特性;使用PandasAI进行会话式查询;使用PandasAI绘制图表;查看PandasAI及其后端(GenAI)。本文作为数据科学博客大赛的一部分发布。

PandasAI是什么?

PandasAI是一个使用生成式AI模型执行pandas任务的Python库。它是一个集成了生成式人工智能能力的库,使用提示工程使Pandas数据框变得会话化。当回想起Pandas时,它会让想到数据分析和操作。有了PandasAI,尝试利用GenAI的优势提高Pandas的生产力。

为什么要使用PandasAI?

借助生成式人工智能的帮助,都需要向数据集提供会话式提示。这带来了一个优势,即不需要学习或理解复杂的代码。数据科学家可以通过简单地使用自然人类语言与数据集进行对话来查询数据集并获取结果。这节省了预处理和分析的时间。这是新的革命,程序员不需要写代码。他们只需要说出他们的想法,然后看到他们的指令被执行。即使是非技术人员现在也可以不写任何复杂代码就构建系统!

PandasAI如何工作?

在了解如何使用PandasAI之前,让看看它是如何工作的。已经多次提到了“生成式人工智能”这个术语。它是PandasAI实现背后的技术。生成式AI(GenAI)是人工智能的一个子集,可以产生包括文本、音频、视频、图片和3D模型在内的广泛数据类型。它通过识别已经收集的数据中的模式并利用它们来创建新颖独特的输出来实现这一点。

另一个需要注意的是使用大型语言模型(LLMs)。PandasAI已经在LLMs上进行了训练,这些模型由许多参数(数千万甚至数十亿)组成的人工神经网络(ANN)构成。所有这些都有助于PandasAI背后的模型能够接受人类指令并将其标记化后再进行解释。PandasAI还被设计为能够处理LangChain模型,使构建LLM应用程序变得更加容易。

开始使用Pandas AI

现在让看看如何使用PandasAI。将看到使用PandasAI的两种方法。首先是使用LangChain模型,然后是直接实现。

pip install langchain from pandasai import PandasAI from langchain.llms import OpenAI langchain_llm = OpenAI(openai_api_key="my-openai-api-key") pandasai = PandasAI(llm=langchain_llm)

环境现在已准备好,PandasAI将自动使用LangChain llm并将其转换为PandasAI llm。

pip install pandasai import pandas as pd # PandasAI from pandasai import PandasAI # For charts import seaborn as sns # iris inbuilt dataset from seaborn iris = sns.load_dataset('iris') # Viewing first rows iris.head()

接下来,导入之前安装的Pandasai中的OpenAI。在运行代码之前,请确保通过替换INSERT_YOUR_API_KEY_HERE来插入API密钥,如下所示。

# Sample DataFrame df = iris # Instantiating an LLM from pandasai.llm.openai import OpenAI # Assigning API key llm = OpenAI(api_token="INSERT_YOUR_API_KEY_HERE") # Calling PandasAI pandas_ai = PandasAI(llm)

会话式查询现在让看看在iris数据集上的一些文本提示。

prompt='Which is the most common specie?' # Running PandasAI prompt pandas_ai.run(df, prompt='Which is the most common specie?')

哦,最常见的物种实际上是setosa!

prompt='What is the average of sepal_length?' # Calling PandasAI pandas_ai = PandasAI(llm) # Running PandasAI prompt pandas_ai.run(df, prompt='What is the average of sepal_length?')

数据集的平均萼片长度为5.84。

prompt='What is the average of sepal_width?' # Calling PandasAI pandas_ai = PandasAI(llm) # Running PandasAI prompt pandas_ai.run(df, prompt='What is the average of sepal_width?')

平均萼片宽度为3.0573333333333337。

prompt='Which is the most common petal_length?' # Calling PandasAI pandas_ai = PandasAI(llm) # Running PandasAI prompt pandas_ai.run(df, prompt='Which is the most common petal_length?')

根据提供的数据,最常见的花瓣长度是1.4。

使用PandasAI绘制图表

是的,不仅可以生成文本!还可以使用PandasAI生成图表和图形。这将需要一个付费API密钥,否则可能会引发RateLimitError。可以尝试不时运行提示。每隔20秒或可以直接获得一个付费计划。

当开始生成图表或图形时,可能会遇到RateLimitError。这将被使用免费API密钥的人遇到。首先,获得一个付费计划是一种出路。这为提供了更多的信用和资源来执行要求更高的任务。但是,如果只想进行实验或只能访问免费密钥,必须手动调节运行代码的方式。应该在大约20秒的间隔内只运行有限的提示。这让以20秒的间隔运行代码。这是由于系统高需求和最大化系统利用,需要在用户之间管理服务器。

Prompt = ‘Plot the histogram of the entries.’ # Running PandasAI prompt response = pandas_ai.run( df, "Plot the histogram of the entries", ) print(response)

当然,这是数据集中条目的直方图。它显示了每个变量的值分布,包括萼片长度、萼片宽度、花瓣长度、花瓣宽度和物种。直方图是可视化数据并查看可能存在的模式或趋势的有用方式。

Prompt = ‘Perform scattered plot of sepal_length and sepal_width’ # Running Pandas AI command response = pandas_ai.run( df, "Perform scattered plot of sepal_length and sepal_width", ) print(response)

当然!要创建萼片长度和萼片宽度的散点图,可以使用表中提供的数据。表中包括萼片长度、萼片宽度、花瓣长度、花瓣宽度和物种的列。可以只关注萼片长度和萼片宽度列来创建图表。

Prompt = “Plot a scattered plot of sepal_length and sepal_width for the species” # Running Pandas AI command response = pandas_ai.run( df, "Plot a scattered plot of sepal_length and sepal_width for the species", ) print(response)

当然!要为物种绘制萼片长度和萼片宽度的散点图,可以使用提供的数据集,其中包含萼片长度、萼片宽度、花瓣长度、花瓣宽度和物种的列。将只关注萼片长度和萼片宽度列。然后,可以创建一个散点图,萼片长度在x轴上,萼片宽度在y轴上。这将使能够可视化这两个变量之间可能存在的潜在关系,针对数据集中的每个物种。

已经看到,通过利用大型语言模型从数据集中提取洞察力,Pandas AI有可能改变数据分析。然而,它受到限制,需要人工验证准确性。这个问题可以通过学习提示工程来解决。因此,可以得出结论,PandasAI是Pandas + AI。更具体地说,可以说Pandas +生成式AI。所有这些都是可能的,使用命令,允许用户以人对人的方式与任务互动。提示通过高级NLP处理,并将其与其他任务结合起来。

关键要点

生成式AI的进步颠覆了数据,导致公司探索创新解决方案,如ChatGPT和PandasAI,提高了数据分析和可视化的能力。

PandasAI是一个Python库,通过提高数据分析和操作,使用提示工程和GenAI能力,增强了Pandas的生产力。

生成式AI节省了时间,并允许通过会话式命令进行非技术系统构建。

Q1. 提示工程的基础是什么?

A. 提示工程涉及创建上下文特定的指令(查询),以从语言模型中产生期望的响应。这些对话指导模型并塑造其行为和输出。

Q2. 生成式AI,用简单的话说是什么?

A. 生成式人工智能或生成式AI是一个能够根据命令生成文本、图像或其他媒体的人工智能(AI)系统。

Q3. 一些提示工程的例子是什么?

A. 一些PE的例子是Pandas AI和ChatGPT等AI系统。

Q4. 生成式AI有哪些挑战?

A. 尽管生成式AI最近取得了很多成就,但它仍然面临一些挫折,如伦理、有害内容的控制、版权问题、数据隐私等。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485