Python使用pandasai实现数据分析

 更新时间:2023年06月07日 11:15:01   作者:PythonFun  
本文主要介绍了Python使用pandasai实现数据分析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

一、引言

最近,一位名叫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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Pycharm远程连接服务器并实现代码同步上传更新功能

    Pycharm远程连接服务器并实现代码同步上传更新功能

    这篇文章主要介绍了Pycharm远程连接服务器并实现代码同步上传更新功能,通过配置远程连接pycharm,直接在windows下pycharm里修改再保存就可以实现同步更新到服务器里的代码里了,需要的朋友可以参考下
    2020-02-02
  • pytorch .detach() .detach_() 和 .data用于切断反向传播的实现

    pytorch .detach() .detach_() 和 .data用于切断反向传播的实现

    这篇文章主要介绍了pytorch .detach() .detach_() 和 .data用于切断反向传播的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • Python教程之无限迭代器的使用详解

    Python教程之无限迭代器的使用详解

    Python的Itetool是一个模块,它提供了各种函数,这些函数在迭代器上工作以产生复杂的迭代器。该模块作为一个快速,内存效率的工具,可以单独使用或组合使用以形成迭代器代数。本文就来和大家详细聊聊无限迭代器,感兴趣的可以了解一下
    2022-09-09
  • Python asyncio异步编程常见问题小结

    Python asyncio异步编程常见问题小结

    本文主要介绍了Python asyncio异步编程常见问题小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • python add_argument()用法解析

    python add_argument()用法解析

    这篇文章主要介绍了python add_argument()用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • python 定义类时,实现内部方法的互相调用

    python 定义类时,实现内部方法的互相调用

    今天小编就为大家分享一篇python 定义类时,实现内部方法的互相调用,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • python中的字典使用分享

    python中的字典使用分享

    Python 中的字典是Python中一个键值映射的数据结构,下面介绍一下如何操作字典,希望大家能够喜欢
    2016-07-07
  • Python3中的列表生成式、生成器与迭代器实例详解

    Python3中的列表生成式、生成器与迭代器实例详解

    这篇文章主要介绍了Python3中的列表生成式、生成器与迭代器,结合实例形式详细分析了Python3列表生成式、生成器与迭代器相关概念、功能、使用方法及操作注意事项,需要的朋友可以参考下
    2018-06-06
  • Python实现模拟锟斤拷等各类乱码详解

    Python实现模拟锟斤拷等各类乱码详解

    说到乱码问题就不得不提到锟斤拷,这算是非常常见的一种乱码形式,那么它到底是经过何种错误操作产生的呢?本文我们就来一步步探究
    2023-02-02
  • Python字典简介以及用法详解

    Python字典简介以及用法详解

    字典(dictionary)是除列表意外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
    2016-11-11

最新评论