Python使用pandasai實(shí)現(xiàn)數(shù)據(jù)分析
一、引言
最近,一位名叫Gabriele Venturi的軟件工程師在github上建立了pandasai的項(xiàng)目。據(jù)官方介紹,pandasai是一個 Python 第三方庫,將人工智能的生成能力集成到pandas包中,使數(shù)據(jù)分析具有對話性。實(shí)際上,該第三方包通過調(diào)用openai的API,并根據(jù)交互指令來對數(shù)據(jù)框中的數(shù)據(jù)進(jìn)行統(tǒng)計分析,可以篩選、計算、分析出用戶想要的數(shù)據(jù),甚至還可以繪制圖表,功能可謂十分強(qiáng)大。目前,在github上有68000顆星,447個fork,已經(jīng)更新了18個版本。
有了這個工具,在不熟悉Python命令的情況下,也通過發(fā)送詳細(xì)的數(shù)據(jù)分析需求,借助pandasai和openai的API生成所需要的數(shù)據(jù)或者圖表,減化了數(shù)據(jù)分析的流程,降低了利用Python進(jìn)行計算、制圖的門檻。
二、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)沒有),如果想申請可以看這個:
另一方面就是要能夠訪問這個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? '))與官方的代碼樣例相比,我們增加了導(dǎo)入openai,同時也把我設(shè)置的base_url指定,最后需要通過print()把生成的結(jié)果打印出來,測試時發(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"))
意思就是生成每一個國家GDP的直方圖。得到的結(jié)果如下圖:

pandasai生成圖表
5. 分析本地圖表
把現(xiàn)有的DateFrame修改為讀取本地的Excel表,可以用pd.read_excel("data.xlsx")命令,讀取完直接賦值給變量df,注意如果數(shù)據(jù)量大的話,讀取的速度可能會慢一點(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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python中flatten( ),matrix.A用法說明
這篇文章主要介紹了Python中flatten( ),matrix.A用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07
Python大批量寫入數(shù)據(jù)(百萬級別)的方法
這篇文章主要給大家介紹了關(guān)于Python大批量寫入數(shù)據(jù)(百萬級別)的相關(guān)資料,在日常處理數(shù)據(jù)的過程中,我們都有批量寫入數(shù)據(jù)的需求,文中給出了詳細(xì)的示例代碼,需要的朋友可以參考下2023-07-07
使用Python實(shí)現(xiàn)圖片和base64轉(zhuǎn)換工具
這篇文章主要為大家詳細(xì)介紹了如何使用Python中的base64模塊編寫一個工具,可以實(shí)現(xiàn)圖片和Base64編碼之間的轉(zhuǎn)換,感興趣的小伙伴可以了解下2025-02-02
Python struct.unpack() 用法及常見錯誤詳解
struct.unpack() 是 Python 中用于將二進(jìn)制數(shù)據(jù)(字節(jié)序列)解析為 Python 數(shù)據(jù)類型的函數(shù),通常與 struct.pack() 配對使用,下面給大家介紹Python struct.unpack()用法及常見錯誤,感興趣的朋友一起看看吧2025-06-06
pandas去重復(fù)行并分類匯總的實(shí)現(xiàn)方法
這篇文章主要介紹了pandas去重復(fù)行并分類匯總的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-01-01

