今天跟大家分享一款Python三方开源库:pandas-ai
Pandas AI 是由海外软件工程师 Gianluca Venturini 开发的,他创建 Pandas AI 的目的是为了简化 Pandas 的使用,使数据分析更容易、更直观。Pandas AI 是一个 Python 库,它将生成的人工智能功能集成到 Pandas 中,使数据框成为对话式的。
该项目从开源到迄今为止, GitHub Star 数达到了 5600+,而且还在实时更新之中,也有许多贡献者加入到该项目的开发与维护中,想必使用的人也不在少数。现在详细介绍下该项目的功用吧。
GitHub地址:https://github.com/gventuri/pandas-ai
功能概况:
- 支持 Prompt 提示词,通过 Prompt 实现所需的数据分析功能
- 更好地进行数据可视化
安装
pip install pandasai
用法
PandasAI 旨在与 Pandas 结合使用。它使 Pandas 具有对话性,支持以 Pandas DataFrames 的形式提出有关数据的问题并获得答案。
比如,可以要求 PandasAI 查找 DataFrame 中哪5个国家最幸福?,它将返回仅包含这些行的 DataFrame:
前提:需要有OpenAI ApiKey
配置API Key
import pandas as pd from pandasai import PandasAI # Sample DataFrame df = pd.DataFrame({ "country": ["United States", "United Kingdom", "France", "Germany", "Italy", "Spain", "Canada", "Australia", "Japan", "China"], "gdp": [19294482071552, 2891615567872, 2411255037952, 3435817336832, 1745433788416, 1181205135360, 1607402389504, 1490967855104, 4380756541440, 14631844184064], "happiness_index": [6.94, 7.16, 6.66, 7.07, 6.38, 6.4, 7.23, 7.22, 5.87, 5.12] }) # Instantiate a LLM from pandasai.llm.openai import OpenAI llm = OpenAI() pandas_ai = PandasAI(llm, conversational=False) pandas_ai.run(df, prompt='Which are the 5 happiest countries?')
输出示例:
6 Canada 7 Australia 1 United Kingdom 3 Germany 0 United States Name: country, dtype: object
当然,也可以让 PandasAI 进行更复杂的查询。
比如,要求 PandasAI 求出 2 个最不幸福国家的 GDP 总和
pandas_ai.run(df, prompt='What is the sum of the GDPs of the 2 unhappiest countries?')
还可以借助 Pandas AI 进行绘画:“绘制每个gpd显示的国家直方图,每个条形图使用不同的颜色”
pandas_ai.run( df, "Plot the histogram of countries showing for each the gpd, using different colors for each bar", )
Pandas AI 绘制图表
更多示例代码查看:https://github.com/gventuri/pandas-ai/tree/main/examples
隐私与安全
为了生成要运行的 Python 代码,我们获取数据帧头部,将其随机化(对敏感数据使用随机生成,对非敏感数据使用混洗)并仅发送头部。
此外,如果你想进一步加强你的隐私,你可以实例化 PandasAI,enforce_privacy = True
它不会将头部(但只是列名)发送到 LLM。
环境变量
为了设置 LLM(Hugging Face Hub,OpenAI)的 API 密钥,需要设置适当的环境变量。通过将.env.example
文件复制到.env
:
cp .env.example .env
然后,编辑.env
文件并设置适当的值。
或者,您也可以将环境变量直接传递给 LLM 的构造函数:
# OpenAI llm = OpenAI(api_token="YOUR_OPENAI_API_KEY") # Starcoder llm = Starcoder(api_token="YOUR_HF_API_KEY")
由于没有API Key,所以没办法第一时间去体验实际的一个功能。不清楚AI功能支持的如何,中英文是否有差异,这个都有待验证。有兴趣有条件的同学可以去当个先行官。