自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

用好這八條ChatGPT指令,高效完成Pandas任務(wù)

人工智能
將ChatGPT用于Pandas數(shù)據(jù)清洗和分析,可以大大提高生產(chǎn)力。本文將分享8個(gè)提示示例,介紹如何詢問ChatGPT以完成Pandas任務(wù)。

我們都聽說過ChatGPT。它不僅受到科技行業(yè)的關(guān)注,而且在更多廣泛的媒體上成為頭條新聞。

盡管有一些關(guān)于它在較簡單任務(wù)上的性能和可靠性的批評(píng),但ChatGPT相比較于其他大型語言模型(LLM)在各種任務(wù)中表現(xiàn)都很出色,已經(jīng)成為生產(chǎn)力的重要推動(dòng)力。

將ChatGPT用于Pandas數(shù)據(jù)清洗和分析,可以大大提高生產(chǎn)力。本文將分享8個(gè)提示示例,介紹如何詢問ChatGPT以完成Pandas任務(wù)。

第一個(gè)提示:定義其角色

首先的提示要確定其作用:

提示:你是一名教我使用Pandas庫的Python導(dǎo)師。我將會(huì)問你如何使用Pandas執(zhí)行特定任務(wù),并期望你能向我解釋。同時(shí),請?jiān)谀愕慕忉屩薪o我展示代碼。

在開始提問之前,我給出了DataFrame的結(jié)構(gòu),包括列名和數(shù)據(jù)類型。

第二個(gè)提示

提示:讓我先告訴你我所擁有的DataFrame的情況。然后,我將開始提問。以下是以Python字典形式給出的列名和數(shù)據(jù)類型。鍵表示列名,值表示數(shù)據(jù)類型。

{‘store’: dtype(‘O’), ‘product_group’: dtype(‘O’), ‘product_code’: dtype(‘int64’), ‘stock_qty’: dtype(‘int64’), ‘cost’: dtype(‘float64’), ‘price’: dtype(‘float64’), ‘last_week_sales’: dtype(‘int64’), ‘last_month_sales’: dtype(‘int64’)}

這里使用一個(gè)由模擬數(shù)據(jù)準(zhǔn)備的樣本數(shù)據(jù)集。你可以從數(shù)據(jù)集庫repo中下載它(https://github.com/SonerYldrm/datasets)。它的名稱是sales_data_with_stores.csv。

以下是為你提供的DataFrame,供你參考:

圖片

DataFrame的前5行

現(xiàn)在我們可以開始進(jìn)行Pandas任務(wù)了。

示例 1

提示:告訴我如何計(jì)算每個(gè)商店上周銷售額的平均值。

這是一個(gè)簡單的一行代碼,但如果你剛開始學(xué)習(xí)Pandas,可能仍然需要一些時(shí)間才能弄清楚。以下是ChatGPT給出的答案:

圖片

ChatGPT給出的測試代碼片段,復(fù)制粘貼如下所示。

# 導(dǎo)入pandas
import pandas as pd

# 假設(shè)'df'是你的DataFrame
average_sales = df.groupby('store')['last_week_sales'].mean()

ChatGPT還提供了有關(guān)代碼的執(zhí)行方式和輸出類型的詳細(xì)解釋以及代碼。

示例 2

提示:告訴我如何找到每個(gè)商店上個(gè)月的總利潤。

對于這個(gè)任務(wù),ChatGPT需要先弄清楚如何計(jì)算利潤。讓我們看看它的響應(yīng):

圖片

# 計(jì)算每個(gè)產(chǎn)品的利潤
df['last_month_profit'] = (df['price'] - df['cost']) * df['last_month_sales']

# 計(jì)算每個(gè)商店的總利潤
total_profit = df.groupby('store')['last_month_profit'].sum()

示例 3

在處理真實(shí)世界的數(shù)據(jù)時(shí),我們經(jīng)常會(huì)遇到缺失值的挑戰(zhàn)。測試ChatGPT如何處理不太直接的任務(wù)。

提示:庫存數(shù)量列中有一些缺失值。我想用該商店的平均庫存數(shù)量替換缺失值。告訴我如何完成這個(gè)任務(wù)。

圖片

# 計(jì)算每個(gè)商店的平均庫存數(shù)量
average_stock_qty_per_store = df.groupby('store')['stock_qty'].transform('mean')

# 用該商店的平均庫存數(shù)量替換'stock_qty'中的缺失值
df['stock_qty'].fillna(average_stock_qty_per_store, inplace=True)

有多種方法可以解決這個(gè)任務(wù),使用transform函數(shù)是其中一種較為有效的方式。

transform函數(shù)很重要,使用transform函數(shù)來完成此任務(wù)的理由如下:

transform函數(shù)與apply函數(shù)類似,但與apply函數(shù)不同,transform函數(shù)可以返回與輸入大小相同的Series,這使得它在執(zhí)行矢量化操作和廣播時(shí)非常有用,特別是與groupby對象一起使用時(shí)。

示例 4

提示:告訴我如何找到每個(gè)店鋪上個(gè)月銷量額最高的前三種產(chǎn)品。

圖片

# 首先,按'store'和'last_month_sales'對DataFrame進(jìn)行排序
df_sorted = df.sort_values(['store', 'last_month_sales'], ascending=[True, False])

# 然后,按'store'分組,并使用apply方法選擇每個(gè)組的前3行
top_3_products = df_sorted.groupby('store').head(3)

它首先對整個(gè)DataFrame進(jìn)行排序。我們也可以在每個(gè)組內(nèi)進(jìn)行排序。讓我們看看ChatGPT是否知道該如何做到這一點(diǎn)。

示例 5

提示:是否有另一種方法可以在不先對DataFrame進(jìn)行排序的情況下完成此任務(wù)?

圖片

def top_3_products(group):
    return group.nlargest(3, 'last_month_sales')

top_3_df = df.groupby('store').apply(top_3_products)

需要注意的是,首先對整個(gè)DataFrame進(jìn)行排序可能是更高效的方法。此示例只是想觀察ChatGPT是否能提供不同的解決方案。

示例 6

提示:我想看到每個(gè)商店的上周表現(xiàn)與上月表現(xiàn)進(jìn)行比較。

這是一個(gè)簡單的任務(wù),但提示并沒有直接告訴ChatGPT如何完成。讓我們看看它的表現(xiàn)如何。

圖片

# 計(jì)算上周和上個(gè)月每個(gè)店的總銷售額
total_sales_last_week = df.groupby('store')['last_week_sales'].sum()
total_sales_last_month = df.groupby('store')['last_month_sales'].sum()

# 創(chuàng)建一個(gè)新的DataFrame來存儲(chǔ)這些信息
performance_df = pd.DataFrame({
    'LastWeekSales': total_sales_last_week,
    'LastMonthSales': total_sales_last_month,
})

# 計(jì)算從上個(gè)月到上周銷售額的變化
performance_df['SalesChange'] = performance_df['LastWeekSales'] - (performance_df['LastMonthSales'] / 4)

作為對上周與上月的表現(xiàn)相比較的反應(yīng),它找到了上周銷售額與上月銷售額四分之一之間存在差異,這是非常合理的。

它創(chuàng)建的DataFrame如下所示:

圖片

示例 7

提示:創(chuàng)建一個(gè)名為critical_stock的新列,如果stock_qty小于500,則取值為1,否則取值為0。

ChatGPT為這個(gè)任務(wù)給出了3個(gè)選項(xiàng),以下是我更喜歡的兩個(gè):

圖片

# 第一種選項(xiàng)
df['critical_stock'] = df['stock_qty'].apply(lambda x: 1 if x < 500 else 0)

# 第二種選項(xiàng)
import numpy as np

df['critical_stock'] = np.where(df['stock_qty'] < 500, 1, 0)

示例 8

提示:以大小、缺失值、數(shù)據(jù)類型和列統(tǒng)計(jì)信息的形式創(chuàng)建一個(gè)DataFrame的摘要。

用于總結(jié)DataFrame的函數(shù)和方法非常簡單,但ChatGPT在整理它們時(shí)做得非常好,排版整潔明了。

如下的是ChatGPT生成的代碼:

# 導(dǎo)入必要的庫
import pandas as pd

# DataFrame大小
print("DataFrame Size:")
print(df.shape)
print("\n")

# 缺失值
print("Missing Values:")
print(df.isnull().sum())
print("\n")

# 數(shù)據(jù)類型
print("Data Types:")
print(df.dtypes)
print("\n")

# 列統(tǒng)計(jì)信息
print("Column Statistics:")
print(df.describe(include='all'))

總結(jié)

以上示例展示了ChatGPT如何在數(shù)據(jù)分析中,尤其是在Pandas中,革命性地改變了常見任務(wù)的完成方式。它不僅提高效率,還豐富了我們對Pandas中可以完成的復(fù)雜操作的理解。

責(zé)任編輯:武曉燕 來源: Python學(xué)研大本營
相關(guān)推薦

2011-05-18 15:40:52

MySQL

2019-03-25 20:40:51

微服務(wù)IT開發(fā)

2021-09-13 07:10:54

Hive查詢效率

2022-06-02 08:28:25

Docker代碼運(yùn)維

2010-08-30 09:37:48

2023-10-15 16:42:51

2011-05-06 15:34:02

打印機(jī)word

2012-06-01 11:13:58

應(yīng)用推廣八條黃金法則

2022-02-11 09:45:54

IT人才IT組織

2009-01-19 15:34:38

數(shù)據(jù)倉庫基本準(zhǔn)則IDC

2011-03-07 14:39:12

數(shù)據(jù)倉庫

2009-07-08 11:11:23

JVM

2022-04-08 10:00:00

DevOps運(yùn)維開發(fā)

2021-05-20 08:00:00

代碼開發(fā)工具

2022-02-08 14:33:22

安全網(wǎng)絡(luò)安全身份驗(yàn)證

2009-12-18 14:08:38

2025-03-05 09:00:00

2016-09-18 16:24:26

物聯(lián)網(wǎng)網(wǎng)絡(luò)安全

2021-12-21 08:00:00

Kubernetes集群容器

2013-08-21 14:25:53

App推廣應(yīng)用推廣黃金法則移動(dòng)應(yīng)用市場
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)