天天看點

33.多條件查詢

案例導入

如下圖,查詢銷售人員周德宇賣商品彩電的數量和總額,以及銷售人員王學敏賣冰箱的數量和總額。

33.多條件查詢

圖1.原始資料表

文心一言提示詞

打開百度“文心一言”,輸入提示詞:“你是pandas專家,檔案路徑為:D:/Samples/銷售情況-多條件查詢.xlsx。該Excel檔案的第一個工作表中A1:D11為給定資料,A-D列分别為“銷售人員”、“商品”、“數量”和“總額”資料。用pandas導入Excel檔案的資料,第1行為索引行,隻導入前11行,前4列資料,引擎為"openpyxl",查詢銷售人員周德宇賣商品彩電的數量和總額,以及銷售人員王學敏賣冰箱的數量和總額,查詢結果輸出為二維表格的形式。”

顯示結果如下:

要完成這個任務,我們需要首先使用pandas庫讀取Excel檔案中的資料,并基于特定的條件來查詢銷售人員周德宇和王學敏所銷售的商品彩電和冰箱的數量和總額。下面是具體的Python代碼實作:

import pandas as pd

# 讀取Excel檔案
file_path = 'D:/Samples/銷售情況-多條件查詢.xlsx'
# 設定讀取選項,隻讀取前11行,前4列,并且第一行為索引
read_options = {'sheet_name': 0, 'header': 0, 'nrows': 11, 'usecols': 'A:D', 'engine': 'openpyxl'}
# 讀取資料
df = pd.read_excel(file_path, **read_options)

# 查詢銷售人員周德宇賣商品彩電的數量和總額
zhou_deyu_tv_sales = df[(df['銷售人員'] == '周德宇') & (df['商品'] == '彩電')].agg({'數量': 'sum', '總額': 'sum'}).to_frame().T
zhou_deyu_tv_sales.columns = ['數量', '總額']
zhou_deyu_tv_sales.index = ['周德宇-彩電']

# 查詢銷售人員王學敏賣商品冰箱的數量和總額
wang_xuemin_fridge_sales = df[(df['銷售人員'] == '王學敏') & (df['商品'] == '冰箱')].agg({'數量': 'sum', '總額': 'sum'}).to_frame().T
wang_xuemin_fridge_sales.columns = ['數量', '總額']
wang_xuemin_fridge_sales.index = ['王學敏-冰箱']

# 将兩個查詢結果合并
result = pd.concat([zhou_deyu_tv_sales, wang_xuemin_fridge_sales])

# 輸出查詢結果
print(result)           

在這個腳本中,我們首先使用pd.read_excel函數來讀取Excel檔案,并指定了讀取選項,包括隻讀取前11行、前4列,以及使用openpyxl作為引擎。然後,我們根據銷售人員和商品的條件來過濾資料,并使用agg函數來計算符合條件的數量和總額的和。接着,我們給查詢結果設定索引和列名,并使用pd.concat将兩個查詢結果合并為一個DataFrame。最後,我們列印出查詢結果。

注意:在運作代碼之前,請確定已經安裝了pandas庫和openpyxl庫。如果未安裝,可以使用pip install pandas openpyxl指令來安裝。同時,確定Excel檔案的路徑是正确的,且Excel檔案是可以被通路的。如果路徑或檔案名包含非ASCII字元,可能需要對路徑字元串進行适當編碼。

Python編輯器運作

33.多條件查詢

圖2.Python運作結果

33.多條件查詢

本合集使用的工具如下:

文心一言:3.5版本

Python編輯器:3.9.0

申明:以上結果皆為實際運作結果,如遇到無法運作可在評論區留言。部分資料來自網絡,如有侵權請私信告知,感謝!