Pandas+ChatGPT強強結(jié)合誕生PandasAI,數(shù)據(jù)分析師行業(yè)要變天了?
說到Python編程語言,使用Python語言主要使用的是數(shù)據(jù)科學領(lǐng)域的從業(yè)者。
Python編程語言之所以在數(shù)據(jù)科學領(lǐng)域十分火熱,源于Python語言的三大數(shù)據(jù)科學工作包,NumPy,Pandas,SciPy。
以下是三個工具包的功能簡介:
NumPy:NumPy 是 Python 中最常用的數(shù)值計算庫之一。它提供了一個高效的多維數(shù)組對象和用于操作數(shù)組的函數(shù),使得在 Python 中進行數(shù)值計算變得更加簡單和高效。

Pandas:Pandas 是一個功能強大且靈活的數(shù)據(jù)分析工具,廣泛用于數(shù)據(jù)清洗、整理和處理。Pandas 提供了豐富的數(shù)據(jù)操作和轉(zhuǎn)換函數(shù),可以進行數(shù)據(jù)的選擇、過濾、聚合、合并等操作,方便進行數(shù)據(jù)預處理和分析。

SciPy:SciPy 提供了許多模塊和子模塊,包括線性代數(shù)、數(shù)值積分、優(yōu)化、信號處理、圖像處理、統(tǒng)計學等領(lǐng)域的函數(shù)和工具。常用于數(shù)據(jù)分析、數(shù)值計算、科學計算以及機器學習等領(lǐng)域。

對于數(shù)據(jù)科學行業(yè)的從業(yè)者掌握Pandas,Numpy,SciPy三大數(shù)據(jù)科學工具包是最基本的技能之一。
Numpy工具包主要用于矩陣的變換,而SciPy工具包則是應用于圖像處理領(lǐng)域。但是真正對實際的數(shù)據(jù)清洗,整理以及處理的操作使用的是pandas工具包,同時業(yè)務方的底層數(shù)據(jù)集通常是以csv格式的表格文件進行存儲的。
我們以下的一個實際的代碼例子,來親自感受一下Pandas工具包的實際用法與教程。
需求:對電影評分表格數(shù)據(jù)處理,加載電影數(shù)據(jù)集的數(shù)據(jù),計算平均評分,同時對不同評分數(shù)量的電影進行數(shù)量統(tǒng)計,并繪制餅狀圖。
備注:電影評分表格數(shù)據(jù)內(nèi)容,表格數(shù)據(jù)中包含三列,電影序號,電影名稱,電影評分。

1. 加載表格數(shù)據(jù)集的數(shù)據(jù)內(nèi)容并打印
# 加載數(shù)據(jù)集
data = pd.read_csv('movies.csv')
# 展示前幾行數(shù)據(jù)
print(data.head())
運行結(jié)果:
movie_id title rating
0 1 The Shawshank Redemption 9.2
1 2 The Godfather 9.1
2 3 The Dark Knight 9.0
3 4 12 Angry Men 8.9
4 5 Pulp Fiction 8.9
2. 計算平均評分
# 計算平均評分
average_rating = data['rating'].mean()
print('平均評分:', average_rating)
運行結(jié)果:
平均評分: 8.919999999999998
3. 統(tǒng)計不同評分的數(shù)量
rating_counts = data['rating'].value_counts()
print('評分統(tǒng)計:')
print(rating_counts)
運行結(jié)果:
評分統(tǒng)計:
8.9 4
8.8 2
9.2 1
9.1 1
9.0 1
8.7 1
4. 將電影評分的分布繪制為餅狀圖
# 繪制評分分布餅狀圖
plt.pie(rating_counts.values, labels=rating_counts.index, autopct='%1.1f%%', startangle=90)
plt.title('電影評分分布')
運行結(jié)果:

怎么樣,Pandas代碼工具包進行表格數(shù)據(jù)的處理能力,效果是不是十分不錯呢?而且感覺很酷炫!
不過Pandas代碼工具包還是需要一定的編程基礎(chǔ)的,由于還需要定義繪制圖片的字體以及布局等,所以即使這樣幾個簡單的處理,也寫了大約60行的代碼。
那么,有沒有什么辦法,直接讓代碼自動生成或者處理我們的數(shù)據(jù)需求?
當然了!在AI的洪流時代,沒有什么是不可能!Pandas與ChatGPY兩個工具包,進行強強結(jié)合。
現(xiàn)在已經(jīng)誕生了“ChatGPT+Pandas”結(jié)合的:Pandas-ai工具包,實現(xiàn)了人工智能輔助我們做數(shù)據(jù)分析!
到底是什么效果,我們一起來看一看!
1. PandasAI安裝命令
pip install pandasai
2. 準備基礎(chǔ)表格的數(shù)據(jù),引用了官網(wǎng)的各國GDP數(shù)據(jù)
import pandas as pd
from pandasai import PandasAI
# 隨機初始化各國名稱,GDP數(shù)據(jù),幸福指數(shù)數(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, 7.22, 5.87, 6.12]
})
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?')
api_token="YOUR_API_TOKEN"中的字符串替換為自己的API KEY,生成方法很簡單,如下圖:

以上代碼的運行結(jié)果如下圖所示
According to the data, the top 5 happiest countries are the United States, Canada, Australia, United Kingdom, and Germany.
3. 不僅可以直接進行對話的文字回答,PandasAI的工具包還可以直接進行圖片生成
pandas_ai.run(df, "Plot the histogram of countries showing for each the gpd, using different colors for each bar")
以上代碼的運行結(jié)果如下圖所示:

4. 并且PandasAI工具包不僅僅支持英文對答,中文也是支持的
pandas_ai.run(df, "哪個國家的GDP最少?使用中文回答")
運行結(jié)果輸出:
哪個國家的GDP最少?日本。
怎么樣?是不是十分的神奇?在ChatGPT的大模型時代,真的沒有任何行業(yè)不受沖擊的。
作為一名程序員要學會擁抱變化,使用Pandas+ChatGPT去提高自己的工作效率,因為時代在發(fā)展進步!