在数据分析领域,经常需要花费大量时间编写代码来排序、筛选或分组数据以获取所需信息。是否有更快捷、更轻松的方法来提取信息呢?如果能与数据集对话,直接向它提问,让它为分析数据,岂不是更加方便?PandasAI就是这样一个工具,它是一个扩展了Pandas功能的Python库,通过集成生成性AI能力,使得数据框的交互更加人性化,有效总结数据。
要开始使用PandasAI,需要一个OpenAI API密钥,可以通过以下链接生成。这将使能够访问OpenAI的大型语言模型(LLM)。
在本文中,将学习如何:
LLM代表大型语言模型,它是一种旨在理解和生成类似人类文本的人工智能(AI)模型。想象一下语言模型是一个计算机程序,它经过大量文本的训练,这些文本来自书籍、文章、网站等。这种训练使模型能够学习人类语言的模式、语法和上下文。
当与语言模型交互时,例如最近流行的ChatGPT,可以用自然语言提供提示或问题。然后模型使用其对语言的理解生成相关和连贯的回应。像LLM这样的语言模型的主要目的是帮助用户以更类似人类的方式理解和生成文本。它可以用于广泛的应用,包括回答问题、提供信息、编写故事、总结文本、翻译语言等。
简而言之,LLM的目标是模仿人类语言理解和表达,使用户能够以更直观和自然的方式与AI系统交互。
让来看一个PandasAI的实际用例。首先,将使用以下命令下载PandasAI库。
!pip install pandasai
接下来,将生成OpenAI API密钥并稍后保存。
import pandas as pd
from pandasai import PandasAI
from pandasai.llm.openai import OpenAI
在这个演示中,将使用奥运会数据集,该数据集包含了120年的运动员信息。如果想跟随操作,可以在这里下载数据集。
下载奥运会数据集后,现在来读取它。
df = pd.read_csv("athlete_events.csv")
数据集包含了关于运动员、他们的国籍、性别、参赛年龄、他们参加的运动、是否获得奖牌以及他们参加的奥运会事件的信息。
要开始探索数据集,将通过首先使用之前生成的OpenAI API密钥初始化OpenAI LLM对象来调用PandasAI对象。
llm = OpenAI(api_token='Your API Key')
pandas_ai = PandasAI(llm)
终于准备好“对话”数据集,并向它提问以从奥运会数据中获得洞察。
让找出哪位运动员参加了最多的奥运会事件。为此,运行创建的pandas_ai变量,并输入数据集名称和提示。
prompt = "Which athlete appeared in the most olympics years and how many"
pandas_ai.run(df, prompt=prompt)
输出:“参加奥运会年份最多的运动员是Ian Millar,他参加了10次。”
注意:由于数据集定期更新,输出可能会有所不同。最好验证得到的答案是否正确。通常通过按运动员姓名对数据进行分组并计算每位运动员的参与年份的总唯一值来做到这一点。可以看到AI给出了正确的答案。
df.groupby(by='Name')['Year'].nunique().sort_values(ascending=False)
PandasAI有潜力彻底改变不断发展的数据分析领域。如果是一名主要关注从数据中提取洞察并根据用户需求生成图表的数据分析师,那么这个库可以帮助以极高的效率自动化这个过程。然而,使用PandasAI时需要注意一些挑战: