【Pandas】这份Pandas练习题,必须成功拿下~
公眾號:尤而小屋
作者:Peter
編輯:Peter
寫過很多Pandas的文章,主要講解了常用的操作和函數(shù)的用法。今天自制了一份水果訂單和銷售的數(shù)據(jù)(模擬數(shù)據(jù),僅供學(xué)習(xí)),主要是用來加深理解下如何靈活且快速使用Pandas來完成我們的需求。
Pandas文章
推薦幾篇文章:
30個Pandas高頻使用技巧
圖解Pandas的軸旋轉(zhuǎn)函數(shù):stack和unstack
圖解Pandas的groupby機(jī)制
創(chuàng)建DataFrame:10種方式任你選
數(shù)據(jù)講解
1、模擬的第一份數(shù)據(jù)有5個字段:訂單號、下單人、商品、價格、數(shù)量
訂單號:每個訂單的訂單號,一個訂單號中存在一個或者多個商品
下單人:一個人可能下1個或者多個訂單,比如張三只下了一個訂單,李四下了多個訂單
商品:同一個商品可能在多個訂單中出現(xiàn)
價格:每個訂單中每個商品的價格,不同的訂單中,同一個商品的價格都可能是不同的,比如SOD訂單中蘋果是10,但是在DFH訂單中卻是9.8
數(shù)量:每個訂單中每個商品的銷售數(shù)量
2、模擬的第二份數(shù)據(jù)中就兩個字段:商品和產(chǎn)地
同時我們可以看到:這兩份數(shù)據(jù)是存在不同的sheet中的,存儲成為xlslx文件,并且沒有任何的缺失值數(shù)據(jù)。
需求1:不同的方式讀取數(shù)據(jù)
存在同一個Excel中的不同sheet中,我們采取不同的方式來讀取:
方式1:同時指定文件和sheet的名稱
import?pandas?as?pd??#?先導(dǎo)入包方式2:指定文件名和sheet的索引號,索引從0開始
需求2:兩份數(shù)據(jù)的合并
可以看到兩個sheet中的數(shù)據(jù)是通過“商品”這個字段進(jìn)行關(guān)聯(lián)的,我們使用pandas中的merge函數(shù),并且保留第一份(左邊left)表格中的全部信息。
merge函數(shù)是一個非常重要的函數(shù),可以靈活地處理Pandas中的數(shù)據(jù)合并問題。
接下來的各種需求都是針對上面合并的數(shù)據(jù)進(jìn)行處理的
需求3:訂單量、客戶量、商品量
訂單量:這份數(shù)據(jù)總共下了多少個訂單
unique:中文是獨特的意思,就是訂單號這個字段有多個獨特、唯一的信息。總共是7個訂單
同樣的道理:可以得到多少個下單用戶、銷售了多少種商品?
需求4:每個用戶的下單量
就是求每個用戶下了多少個訂單:使用groupby進(jìn)行分組統(tǒng)計每個下單人的訂單量。
先使用groupby函數(shù)進(jìn)行分組
再使用聚合函數(shù)nunique,統(tǒng)計每個“訂單號”的個數(shù)(去重統(tǒng)計)
最后再索引重置下
看到李四下了3張訂單,是最多的
需求5:每個用戶的總消費(fèi)金額
1、先增加一列:總額
2、兩種不同方式的分組再聚合
需求6:不同產(chǎn)地的訂單量、銷量、銷售總額
需求7:每個訂單中價格最高的商品
找出每個訂單中價格最高的商品,比如:SOD訂單中價格最高的就是葡萄
方式1:第一種實現(xiàn)的方式如下:
先整體通過降序排列
再根據(jù)訂單號來分組,取出第一條first數(shù)據(jù)即可
方式2:實現(xiàn)方式如下
1、先實現(xiàn)每個訂單號根據(jù)價格降序排列
方式2:多個函數(shù)的混合使用,可分開運(yùn)行查看每步驟的結(jié)果
df.groupby("訂單號").apply(lambda?x:?x.sort_values("價格",ascending=False)).reset_index(drop=True).groupby("訂單號").first().reset_index()方式3:分組的時候使用groupby_keys參數(shù)
需求8:每個訂單中價格最高的前2位
取出每個訂單中價格最高的前2位,若只有一位取出一位即可。
上面是取出分組后最高的數(shù)據(jù),即第一條first。在這個需求中我們使用head函數(shù),可以取出任意的n條數(shù)據(jù):Top-N
需求9:每個商品的筆單價(保留2位小數(shù))
我們來拆解題意:
每個商品:確定了分組的元素是groupby="商品"
筆單價:先求每個商品的總銷售額,在求每個商品的訂單數(shù),最后相除
如何對上面的商品筆單價保留兩位小數(shù)呢?兩種方法來實現(xiàn):
往期精彩回顧適合初學(xué)者入門人工智能的路線及資料下載機(jī)器學(xué)習(xí)及深度學(xué)習(xí)筆記等資料打印機(jī)器學(xué)習(xí)在線手冊深度學(xué)習(xí)筆記專輯《統(tǒng)計學(xué)習(xí)方法》的代碼復(fù)現(xiàn)專輯 AI基礎(chǔ)下載黃海廣老師《機(jī)器學(xué)習(xí)課程》視頻課黃海廣老師《機(jī)器學(xué)習(xí)課程》711頁完整版課件本站qq群851320808,加入微信群請掃碼:
總結(jié)
以上是生活随笔為你收集整理的【Pandas】这份Pandas练习题,必须成功拿下~的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 还说不会深度学习,三招帮你“炼丹”成功
- 下一篇: 【机器学习】一文解读时间序列基本概念