Python使用pandasai实现数据分析
作者:PythonFun
一、引言
最近,一位名叫Gabriele Venturi的软件工程师在github上建立了pandasai的项目。据官方介绍,pandasai是一个 Python 第三方库,将人工智能的生成能力集成到pandas包中,使数据分析具有对话性。实际上,该第三方包通过调用openai的API,并根据交互指令来对数据框中的数据进行统计分析,可以筛选、计算、分析出用户想要的数据,甚至还可以绘制图表,功能可谓十分强大。目前,在github上有68000颗星,447个fork,已经更新了18个版本。
有了这个工具,在不熟悉Python命令的情况下,也通过发送详细的数据分析需求,借助pandasai和openai的API生成所需要的数据或者图表,减化了数据分析的流程,降低了利用Python进行计算、制图的门槛。
二、pandasai的初步使用
1. pandasai的安装
安装完Python3.8以上版本后,采用pip命令安装:
pip install pandasai
2.官方代码样例
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(api_token="YOUR_API_TOKEN") pandas_ai = PandasAI(llm, conversational=False) pandas_ai(df, prompt='Which are the 5 happiest countries?')
3. 样例代码修改
在调试此样例过程中,一方面要获得openai的API(貌似免费的额度已经没有),如果想申请可以看这个:
另一方面就是要能够访问这个api。如果想顺利访问api,需要用到以下文章中第四种方法:
修改后的样例代码如下:
import pandas as pd from pandasai import PandasAI from pandasai.llm.openai import OpenAI import openai openai.api_base = "https://XXX.com/v1" #这里设置自己的网址 # 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,5.87,5.87,5.12] }) # Instantiate a LLM 生成LLM实例 llm = OpenAI(api_token="Your Own Open_API_Key") # 这里放置自己的api pandas_ai = PandasAI(llm, conversational=False) print(pandas_ai.run(df, prompt='Which are the 5 happiest countries? '))
与官方的代码样例相比,我们增加了导入openai,同时也把我设置的base_url指定,最后需要通过print()把生成的结果打印出来,测试时发现也可以用中文提问。生成的结果展示
4. 可视化制图
如果相生成图表,可以在prompt中指定,例如把上面修改的样例代码最后一行改为:
print(pandas_ai(df,"Plot the histogram of countries showing for each the gdp, using different colors for each bar"))
意思就是生成每一个国家GDP的直方图。得到的结果如下图:
pandasai生成图表
5. 分析本地图表
把现有的DateFrame修改为读取本地的Excel表,可以用pd.read_excel("data.xlsx")命令,读取完直接赋值给变量df,注意如果数据量大的话,读取的速度可能会慢一点。
import pandas as pd from pandasai import PandasAI from pandasai.llm.openai import OpenAI import openai openai.api_base = "https://XXX.com/v1" #Sample DataFrame df = pd.read_excel("data.xlsx") # Instantiate a LLM llm = OpenAI(api_token="Your Own Open_API_Key") pandas_ai = PandasAI(llm, conversational=False) print(pandas_ai(df, prompt='Which are the 5 happiest countries? '))
三、学后反思
- pandasai整合了pandas和chatgpt的功能,降低了数据分析的学习成本,可以作为数据分析流中重要的一环。
- pandasai分析结果较为准确,由于api的访问速度较慢,整体上看程序代码虽然不多,运行起来速度较慢。
- 由于openai公司已经取消了免费api的额度,所以如果要使用api就要设置付费账户,这无疑为普通用户的使用设置了障碍。
到此这篇关于Python使用pandasai实现数据分析的文章就介绍到这了,更多相关Python pandasai内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!