Python使用pandasai實(shí)現(xiàn)數(shù)據(jù)分析
一、引言
最近,一位名叫Gabriele Venturi的軟件工程師在github上建立了pandasai的項(xiàng)目。據(jù)官方介紹,pandasai是一個(gè) Python 第三方庫,將人工智能的生成能力集成到pandas包中,使數(shù)據(jù)分析具有對(duì)話性。實(shí)際上,該第三方包通過調(diào)用openai的API,并根據(jù)交互指令來對(duì)數(shù)據(jù)框中的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析,可以篩選、計(jì)算、分析出用戶想要的數(shù)據(jù),甚至還可以繪制圖表,功能可謂十分強(qiáng)大。目前,在github上有68000顆星,447個(gè)fork,已經(jīng)更新了18個(gè)版本。
有了這個(gè)工具,在不熟悉Python命令的情況下,也通過發(fā)送詳細(xì)的數(shù)據(jù)分析需求,借助pandasai和openai的API生成所需要的數(shù)據(jù)或者圖表,減化了數(shù)據(jù)分析的流程,降低了利用Python進(jìn)行計(jì)算、制圖的門檻。
二、pandasai的初步使用
1. pandasai的安裝
安裝完P(guān)ython3.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. 樣例代碼修改
在調(diào)試此樣例過程中,一方面要獲得openai的API(貌似免費(fèi)的額度已經(jīng)沒有),如果想申請(qǐng)可以看這個(gè):
另一方面就是要能夠訪問這個(gè)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" #這里設(shè)置自己的網(wǎng)址 # Sample DataFrame #從數(shù)據(jù)框中取樣 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實(shí)例 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? '))
與官方的代碼樣例相比,我們?cè)黾恿藢?dǎo)入openai,同時(shí)也把我設(shè)置的base_url指定,最后需要通過print()把生成的結(jié)果打印出來,測試時(shí)發(fā)現(xiàn)也可以用中文提問。生成的結(jié)果展示
4. 可視化制圖
如果相生成圖表,可以在prompt中指定,例如把上面修改的樣例代碼最后一行改為:
print(pandas_ai(df,"Plot the histogram of countries showing for each the gdp, using different colors for each bar"))
意思就是生成每一個(gè)國家GDP的直方圖。得到的結(jié)果如下圖:
pandasai生成圖表
5. 分析本地圖表
把現(xiàn)有的DateFrame修改為讀取本地的Excel表,可以用pd.read_excel("data.xlsx")命令,讀取完直接賦值給變量df,注意如果數(shù)據(jù)量大的話,讀取的速度可能會(huì)慢一點(diǎn)。
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? '))
三、學(xué)后反思
- pandasai整合了pandas和chatgpt的功能,降低了數(shù)據(jù)分析的學(xué)習(xí)成本,可以作為數(shù)據(jù)分析流中重要的一環(huán)。
- pandasai分析結(jié)果較為準(zhǔn)確,由于api的訪問速度較慢,整體上看程序代碼雖然不多,運(yùn)行起來速度較慢。
- 由于openai公司已經(jīng)取消了免費(fèi)api的額度,所以如果要使用api就要設(shè)置付費(fèi)賬戶,這無疑為普通用戶的使用設(shè)置了障礙。
到此這篇關(guān)于Python使用pandasai實(shí)現(xiàn)數(shù)據(jù)分析的文章就介紹到這了,更多相關(guān)Python pandasai內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- R語言 vs Python對(duì)比:數(shù)據(jù)分析哪家強(qiáng)?
- 分享一下Python數(shù)據(jù)分析常用的8款工具
- PowerBI和Python關(guān)于數(shù)據(jù)分析的對(duì)比
- python數(shù)據(jù)分析之聚類分析(cluster analysis)
- python實(shí)現(xiàn)數(shù)據(jù)分析與建模
- Python數(shù)據(jù)分析之pandas比較操作
- Python數(shù)據(jù)分析模塊pandas用法詳解
- 詳解10個(gè)可以快速用Python進(jìn)行數(shù)據(jù)分析的小技巧
相關(guān)文章
python使用opencv進(jìn)行人臉識(shí)別
本文主要介紹了python使用opencv進(jìn)行人臉識(shí)別的相關(guān)資料。具有很好的參考價(jià)值。下面跟著小編一起來看下吧2017-04-04Python操作系統(tǒng)的6個(gè)自動(dòng)化腳本小結(jié)
在Python中,實(shí)現(xiàn)操作系統(tǒng)自動(dòng)化的腳本可以涵蓋從文件操作、系統(tǒng)監(jiān)控到網(wǎng)絡(luò)任務(wù)等多種功能,下面我將詳細(xì)介紹六個(gè)不同類別的Python自動(dòng)化腳本示例,這些示例將幫助你理解如何用Python來自動(dòng)化日常操作系統(tǒng)任務(wù),需要的朋友可以參考下2024-10-10opencv-python 讀取圖像并轉(zhuǎn)換顏色空間實(shí)例
今天小編就為大家分享一篇opencv-python 讀取圖像并轉(zhuǎn)換顏色空間實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-12-12matplotlib部件之矩形選區(qū)(RectangleSelector)的實(shí)現(xiàn)
這篇文章主要介紹了matplotlib部件之矩形選區(qū)(RectangleSelector)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02python編程中簡潔優(yōu)雅的推導(dǎo)式示例詳解
這篇文章主要為大家介紹了python編程中簡潔優(yōu)雅的推導(dǎo)式示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-11-11