使用LlamaIndex构建自己的PandasAI

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
实时计算 Flink 版,5000CU*H 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
简介: 了解如何利用 LlamaIndex 和 GPT-3.5-Turbo 轻松为 Pandas 添加自然语言功能,以进行直观的数据分析和对话
推荐:使用 NSDT场景编辑器 快速搭建3D应用场景

Pandas AI 是一个 Python 库,它利用生成 AI 的强大功能来增强流行的数据分析库 Pandas。只需一个简单的提示,Pandas AI 就可以让你执行复杂的数据清理、分析和可视化,而这以前需要很多行代码。

除了处理数字之外,Pandas AI还理解自然语言。您可以用简单的英语询问有关数据的问题,它将以日常语言提供摘要和见解,使您免于破译复杂的图形和表格。

在下面的示例中,我们提供了一个 Pandas 数据帧,并要求生成 AI 创建条形图。结果令人印象深刻。

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

注意:代码示例来自 Pandas AI:您的生成式 AI 驱动的数据分析指南教程。

在这篇文章中,我们将使用LlamaIndex来创建类似的工具,这些工具可以理解Pandas数据框架并产生复杂的结果,如上所示。

LlamaIndex支持通过聊天和代理对数据进行自然语言查询。它允许大型语言模型大规模解释私有数据,而无需对新数据进行重新训练。它将大型语言模型与各种数据源和工具集成在一起。LlamaIndex是一个数据框架,只需几行代码即可轻松创建带有PDF应用程序的聊天。

建立

您可以使用该命令安装 Python 库。pip

pip install llama-index

默认情况下,LlamaIndex使用OpenAI模型进行文本生成以及检索和嵌入。为了轻松运行代码,我们必须设置 .我们可以在新的 API 令牌页面上免费注册并获取 API 密钥。gpt-3.5-turbotext-embedding-ada-002OPENAI_API_KEY

import os
os.environ["OPENAI_API_KEY"] = "sk-xxxxxx"

它们还支持Anthropic,Hugging Face,PaLM和更多模型的集成。您可以通过阅读模块的文档来了解有关它的所有信息。

熊猫查询引擎

让我们进入创建自己的PandasAI的主要主题。安装库并设置 API 密钥后,我们将创建一个简单的城市数据帧,以城市名称和人口作为列。

import pandas as pd
from llama_index.query_engine.pandas_query_engine import PandasQueryEngine
df = pd.DataFrame(
    {"city": ["New York", "Islamabad", "Mumbai"], "population": [8804190, 1009832, 12478447]}
)

使用 ,我们将创建一个查询引擎来加载数据帧并为其编制索引。PandasQueryEngine

之后,我们将编写一个查询并显示响应。

query_engine = PandasQueryEngine(df=df)
response = query_engine.query(
    "What is the city with the lowest population?",
)

如我们所见,它开发了 Python 代码,用于在数据帧中显示人口最少的城市。

> Pandas Instructions:
```
eval("df.loc[df['population'].idxmin()]['city']")
```
eval("df.loc[df['population'].idxmin()]['city']")
> Pandas Output: Islamabad

而且,如果你打印回复,你会得到“伊斯兰堡”。这很简单,但令人印象深刻。您不必提出自己的逻辑或围绕代码进行实验。只需输入问题,您就会得到答案。

print(response)
Islamabad

您还可以使用响应元数据打印结果背后的代码。

print(response.metadata["pandas_instruction_str"])
eval("df.loc[df['population'].idxmin()]['city']")

全球优酷统计分析

在第二个示例中,我们将从 Kaggle 加载 2023 年全球 YouTube 统计数据集并执行一些基本面分析。这是从简单示例迈出的一步。

我们将用于将数据集加载到查询引擎中。然后我们将编写提示,仅显示具有缺失值和缺失值数量的列。read_csv

df_yt = pd.read_csv("Global YouTube Statistics.csv")
query_engine = PandasQueryEngine(df=df_yt, verbose=True)
response = query_engine.query(
    "List the columns with missing values and the number of missing values. Only show missing values columns.",
)
> Pandas Instructions:
```
df.isnull().sum()[df.isnull().sum() > 0]
```
df.isnull().sum()[df.isnull().sum() > 0]
> Pandas Output: category                                    46
Country                                    122
Abbreviation                               122
channel_type                                30
video_views_rank                             1
country_rank                               116
channel_type_rank                           33
video_views_for_the_last_30_days            56
subscribers_for_last_30_days               337
created_year                                 5
created_month                                5
created_date                                 5
Gross tertiary education enrollment (%)    123
Population                                 123
Unemployment rate                          123
Urban_population                           123
Latitude                                   123
Longitude                                  123
dtype: int64

现在,我们将直接询问有关流行频道类型的问题。在我看来,LlamdaIndex查询引擎非常准确,还没有产生任何幻觉。

response = query_engine.query(
    "Which channel type have the most views.",
)
> Pandas Instructions:
```
eval("df.groupby('channel_type')['video views'].sum().idxmax()")
```
eval("df.groupby('channel_type')['video views'].sum().idxmax()")
> Pandas Output: Entertainment
Entertainment

最后,我们将要求它可视化barchat,结果是惊人的。

response = query_engine.query(
    "Visualize barchat of top ten youtube channels based on subscribers and add the title.",
)
> Pandas Instructions:
```
eval("df.nlargest(10, 'subscribers')[['Youtuber', 'subscribers']].plot(kind='bar', x='Youtuber', y='subscribers', title='Top Ten YouTube Channels Based on Subscribers')")
```
eval("df.nlargest(10, 'subscribers')[['Youtuber', 'subscribers']].plot(kind='bar', x='Youtuber', y='subscribers', title='Top Ten YouTube Channels Based on Subscribers')")
> Pandas Output: AxesSubplot(0.125,0.11;0.775x0.77)

通过简单的提示和查询引擎,我们可以自动化数据分析并执行复杂的任务。喇嘛指数还有更多。我强烈建议您阅读官方文档并尝试构建令人惊叹的东西。

结论

总之,LlamaIndex是一个令人兴奋的新工具,它允许开发人员创建自己的PandasAI - 利用大型语言模型的强大功能进行直观的数据分析和对话。通过使用 LlamaIndex 索引和嵌入数据集,您可以对私有数据启用高级自然语言功能,而不会影响安全性或重新训练模型。

这只是一个开始,使用LlamaIndex,您可以构建文档,聊天机器人,自动化AI,知识图谱,AI SQL查询引擎,全栈Web应用程序的问答,并构建私有生成AI应用程序。


原文链接:https://www.mvrlink.com/build-your-own-pandasai-with-llamaindex/

目录
相关文章
|
6月前
|
人工智能 安全 数据挖掘
Pandas AI:Pandas与人工智能的结合,让你不再拘泥于如何使用pandas方法及处理语法
Pandas AI:Pandas与人工智能的结合,让你不再拘泥于如何使用pandas方法及处理语法
263 1
|
4月前
|
机器学习/深度学习 数据可视化 搜索推荐
Python在社交媒体分析中扮演关键角色,借助Pandas、NumPy、Matplotlib等工具处理、可视化数据及进行机器学习。
【7月更文挑战第5天】Python在社交媒体分析中扮演关键角色,借助Pandas、NumPy、Matplotlib等工具处理、可视化数据及进行机器学习。流程包括数据获取、预处理、探索、模型选择、评估与优化,以及结果可视化。示例展示了用户行为、话题趋势和用户画像分析。Python的丰富生态使得社交媒体洞察变得高效。通过学习和实践,可以提升社交媒体分析能力。
79 1
|
1月前
|
数据采集 数据挖掘 API
Python数据分析加速器:深度挖掘Pandas与NumPy的高级功能
在Python数据分析的世界里,Pandas和NumPy无疑是两颗璀璨的明星,它们为数据科学家和工程师提供了强大而灵活的工具集,用于处理、分析和探索数据。今天,我们将一起深入探索这两个库的高级功能,看看它们如何成为数据分析的加速器。
36 1
|
1月前
|
机器学习/深度学习 并行计算 大数据
【Python篇】深入挖掘 Pandas:机器学习数据处理的高级技巧
【Python篇】深入挖掘 Pandas:机器学习数据处理的高级技巧
53 3
|
2月前
|
机器学习/深度学习 算法 数据挖掘
Python数据分析革命:Scikit-learn库,让机器学习模型训练与评估变得简单高效!
在数据驱动时代,Python 以强大的生态系统成为数据科学的首选语言,而 Scikit-learn 则因简洁的 API 和广泛的支持脱颖而出。本文将指导你使用 Scikit-learn 进行机器学习模型的训练与评估。首先通过 `pip install scikit-learn` 安装库,然后利用内置数据集进行数据准备,选择合适的模型(如逻辑回归),并通过交叉验证评估其性能。最终,使用模型对新数据进行预测,简化整个流程。无论你是新手还是专家,Scikit-learn 都能助你一臂之力。
114 8
|
2月前
|
机器学习/深度学习 供应链 TensorFlow
深度学习实战营:TensorFlow+Python,打造你的数据驱动决策引擎
【9月更文挑战第13天】在数据爆炸时代,企业日益依赖精准分析进行决策。深度学习凭借其卓越的特征提取与模式识别能力,成为构建数据驱动决策引擎的关键技术。本项目通过TensorFlow和Python,利用LSTM构建零售业销量预测模型,优化库存管理和营销策略。首先确保安装TensorFlow,然后使用Keras API搭建模型,并通过训练、评估和部署流程,展示深度学习在数据驱动决策中的强大应用潜力,助力企业提升经营效率。
42 3
|
3月前
|
机器学习/深度学习 PyTorch TensorFlow
NumPy 与机器学习框架的集成
【8月更文第30天】NumPy 是 Python 中用于科学计算的核心库之一,它提供了高效的多维数组对象,以及用于操作数组的大量函数。NumPy 的高效性和灵活性使其成为许多机器学习框架的基础。本文将探讨 NumPy 如何与 TensorFlow 和 PyTorch 等流行机器学习框架协同工作,并通过具体的代码示例来展示它们之间的交互。
50 0
|
4月前
|
机器学习/深度学习 数据采集 数据挖掘
智能决策新引擎:Python+Scikit-learn,打造高效数据分析与机器学习解决方案!
【7月更文挑战第26天】在数据驱动时代,企业需从大数据中提取价值以精准决策。Python凭借丰富的库成为数据分析利器,而Scikit-learn作为核心工具备受青睐。本文通过电商案例展示如何预测潜在买家以实施精准营销。首先进行数据预处理,包括清洗、特征选择与转换;接着采用逻辑回归模型进行训练与预测;最后评估模型并优化。此方案显著提升了营销效率和企业决策能力,预示着智能决策系统的广阔前景。
89 2
|
4月前
|
机器学习/深度学习 数据可视化 开发者
视觉的力量!Python 机器学习模型评估,Matplotlib 与 Seaborn 如何助力决策更明智?
【7月更文挑战第23天】在Python机器学习中,模型评估不可或缺。Matplotlib与Seaborn作为数据可视化工具,助力洞察模型性能。Matplotlib基础灵活,构建复杂图表;Seaborn在其上层,简化绘图,提升美观。从折线图追踪损失到条形图对比准确率,两者互补,促进高效决策制定。尽管Matplotlib掌控力强,但Seaborn友好快捷,适于统计图形。结合使用,可将数据转化成深刻见解。
41 6
|
3月前
|
人工智能 自然语言处理 数据处理
【AI大模型】Transformers大模型库(十三):Datasets库
【AI大模型】Transformers大模型库(十三):Datasets库
61 0