最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

14個(gè)用Python實(shí)現(xiàn)的Excel常用操作總結(jié)

 更新時(shí)間:2022年06月01日 15:20:59   作者:印象Python  
自從學(xué)了Python后就逼迫自己不用Excel,所有操作用Python實(shí)現(xiàn)。目的是鞏固Python,與增強(qiáng)數(shù)據(jù)處理能力。本文為大家總結(jié)了14個(gè)用Python實(shí)現(xiàn)的Excel常用操作,需要的可以參考一下

前言

自從學(xué)了Python后就逼迫自己不用Excel,所有操作用Python實(shí)現(xiàn)。目的是鞏固Python,與增強(qiáng)數(shù)據(jù)處理能力。

這也是我寫這篇文章的初衷。廢話不說了,直接進(jìn)入正題。

數(shù)據(jù)是網(wǎng)上找到的銷售數(shù)據(jù),長這樣:

一、關(guān)聯(lián)公式:Vlookup

vlookup是excel幾乎最常用的公式,一般用于兩個(gè)表的關(guān)聯(lián)查詢等。所以我先把這張表分為兩個(gè)表。

df1=sale[['訂單明細(xì)號(hào)','單據(jù)日期','地區(qū)名稱',?'業(yè)務(wù)員名稱','客戶分類',?'存貨編碼',?'客戶名稱',?'業(yè)務(wù)員編碼',?'存貨名稱',?'訂單號(hào)',
???????'客戶編碼',?'部門名稱',?'部門編碼']]
df2=sale[['訂單明細(xì)號(hào)','存貨分類',?'稅費(fèi)',?'不含稅金額',?'訂單金額',?'利潤',?'單價(jià)','數(shù)量']]

需求:想知道df1的每一個(gè)訂單對(duì)應(yīng)的利潤是多少。

利潤一列存在于df2的表格中,所以想知道df1的每一個(gè)訂單對(duì)應(yīng)的利潤是多少。用excel的話首先確認(rèn)訂單明細(xì)號(hào)是唯一值,然后在df1新增一列寫:=vlookup(a2,df2!a:h,6,0) ,然后往下拉就ok了。(剩下13個(gè)我就不寫excel啦)

那用python是如何實(shí)現(xiàn)的呢?

#查看訂單明細(xì)號(hào)是否重復(fù),結(jié)果是沒。
df1["訂單明細(xì)號(hào)"].duplicated().value_counts()
df2["訂單明細(xì)號(hào)"].duplicated().value_counts()

df_c=pd.merge(df1,df2,on="訂單明細(xì)號(hào)",how="left")

二、數(shù)據(jù)透視表

需求:想知道每個(gè)地區(qū)的業(yè)務(wù)員分別賺取的利潤總和與利潤平均數(shù)。

pd.pivot_table(sale,index="地區(qū)名稱",columns="業(yè)務(wù)員名稱",values="利潤",aggfunc=[np.sum,np.mean])

三、對(duì)比兩列差異

因?yàn)檫@表每列數(shù)據(jù)維度都不一樣,比較起來沒啥意義,所以我先做了個(gè)訂單明細(xì)號(hào)的差異再進(jìn)行比較。

需求:比較訂單明細(xì)號(hào)與訂單明細(xì)號(hào)2的差異并顯示出來。

sale["訂單明細(xì)號(hào)2"]=sale["訂單明細(xì)號(hào)"]

#在訂單明細(xì)號(hào)2里前10個(gè)都+1.
sale["訂單明細(xì)號(hào)2"][1:10]=sale["訂單明細(xì)號(hào)2"][1:10]+1

#差異輸出
result=sale.loc[sale["訂單明細(xì)號(hào)"].isin(sale["訂單明細(xì)號(hào)2"])==False]

四、去除重復(fù)值

需求:去除業(yè)務(wù)員編碼的重復(fù)值

sale.drop_duplicates("業(yè)務(wù)員編碼",inplace=True)

五、缺失值處理

先查看銷售數(shù)據(jù)哪幾列有缺失值。

#列的行數(shù)小于index的行數(shù)的說明有缺失值,這里客戶名稱329<335,說明有缺失值
sale.info()

需求:用0填充缺失值或則刪除有客戶編碼缺失值的行。實(shí)際上缺失值處理的辦法是很復(fù)雜的,這里只介紹簡(jiǎn)單的處理方法,若是數(shù)值變量,最常用平均數(shù)或中位數(shù)或眾數(shù)處理,比較復(fù)雜的可以用隨機(jī)森林模型根據(jù)其他維度去預(yù)測(cè)結(jié)果填充。若是分類變量,根據(jù)業(yè)務(wù)邏輯去填充準(zhǔn)確性比較高。比如這里的需求填充客戶名稱缺失值:就可以根據(jù)存貨分類出現(xiàn)頻率最大的存貨所對(duì)應(yīng)的客戶名稱去填充。

這里我們用簡(jiǎn)單的處理辦法:用0填充缺失值或則刪除有客戶編碼缺失值的行。

#用0填充缺失值
sale["客戶名稱"]=sale["客戶名稱"].fillna(0)
#刪除有客戶編碼缺失值的行
sale.dropna(subset=["客戶編碼"])

六、多條件篩選

需求:想知道業(yè)務(wù)員張愛,在北京區(qū)域賣的商品訂單金額大于6000的信息。

sale.loc[(sale["地區(qū)名稱"]=="北京")&(sale["業(yè)務(wù)員名稱"]=="張愛")&(sale["訂單金額"]>5000)]

七、 模糊篩選數(shù)據(jù)

需求:篩選存貨名稱含有"三星"或則含有"索尼"的信息。

sale.loc[sale["存貨名稱"].str.contains("三星|索尼")]

八、分類匯總

需求:北京區(qū)域各業(yè)務(wù)員的利潤總額。

sale.groupby(["地區(qū)名稱","業(yè)務(wù)員名稱"])["利潤"].sum()

九、條件計(jì)算

需求:存貨名稱含“三星字眼”并且稅費(fèi)高于1000的訂單有幾個(gè)?這些訂單的利潤總和和平均利潤是多少?(或者最小值,最大值,四分位數(shù),標(biāo)注差)

sale.loc[sale["存貨名稱"].str.contains("三星")&(sale["稅費(fèi)"]>=1000)][["訂單明細(xì)號(hào)","利潤"]].describe()

十、刪除數(shù)據(jù)間的空格

需求:刪除存貨名稱兩邊的空格。

sale["存貨名稱"].map(lambda?s?:s.strip(""))

十一、數(shù)據(jù)分列

需求:將日期與時(shí)間分列。

sale=pd.merge(sale,pd.DataFrame(sale["單據(jù)日期"].str.split("?",expand=True)),how="inner",left_index=True,right_index=True)

十二、異常值替換

首先用describe()函數(shù)簡(jiǎn)單查看一下數(shù)據(jù)有無異常值。

#可看到銷項(xiàng)稅有負(fù)數(shù),一般不會(huì)有這種情況,視它為異常值。
sale.describe()

需求:用0代替異常值。

sale["訂單金額"]=sale["訂單金額"].replace(min(sale["訂單金額"]),0)

十三、分組

需求:根據(jù)利潤數(shù)據(jù)分布把地區(qū)分組為:"較差","中等","較好","非常好"

首先,當(dāng)然是查看利潤的數(shù)據(jù)分布呀,這里我們采用四分位數(shù)去判斷。

sale.groupby("地區(qū)名稱")["利潤"].sum().describe()

根據(jù)四分位數(shù)把地區(qū)總利潤為[-9,7091]區(qū)間的分組為“較差”,(7091,10952]區(qū)間的分組為"中等" (10952,17656]分組為較好,(17656,37556]分組為非常好。

#先建立一個(gè)Dataframe
sale_area=pd.DataFrame(sale.groupby("地區(qū)名稱")["利潤"].sum()).reset_index()

#設(shè)置bins,和分組名稱
bins=[-10,7091,10952,17656,37556]
groups=["較差","中等","較好","非常好"]

#使用cut分組
#sale_area["分組"]=pd.cut(sale_area["利潤"],bins,labels=groups)

十四、根據(jù)業(yè)務(wù)邏輯定義標(biāo)簽

需求:銷售利潤率(即利潤/訂單金額)大于30%的商品信息并標(biāo)記它為優(yōu)質(zhì)商品,小于5%為一般商品。

sale.loc[(sale["利潤"]/sale["訂單金額"])>0.3,"label"]="優(yōu)質(zhì)商品"
sale.loc[(sale["利潤"]/sale["訂單金額"])<0.05,"label"]="一般商品"

其實(shí)excel常用的操作還有很多,我就列舉了14個(gè)自己比較常用的,若還想實(shí)現(xiàn)哪些操作可以評(píng)論一起交流討論,另外我自身也知道我寫python不夠精簡(jiǎn),慣性使用loc。(其實(shí)query會(huì)比較精簡(jiǎn))。若大家對(duì)這幾個(gè)操作有更好的寫法請(qǐng)務(wù)必評(píng)論告知我,感謝!

最后想說說,我覺得最好不要拿excel和python做對(duì)比,去研究哪個(gè)好用,其實(shí)都是工具,excel作為最為廣泛的數(shù)據(jù)處理工具,壟斷這么多年必定在數(shù)據(jù)處理方便也是相當(dāng)優(yōu)秀的,有些操作確實(shí)python會(huì)比較簡(jiǎn)單,但也有不少excel操作起來比python簡(jiǎn)單的。

比如一個(gè)很簡(jiǎn)單的操作:對(duì)各列求和并在最下一行顯示出來,excel就是對(duì)一列總一個(gè)sum()函數(shù),然后往左一拉就解決,而python則要定義一個(gè)函數(shù)(因?yàn)閜ython要判斷格式,若非數(shù)值型數(shù)據(jù)直接報(bào)錯(cuò)。)

以上就是14個(gè)用Python實(shí)現(xiàn)的Excel常用操作總結(jié)的詳細(xì)內(nèi)容,更多關(guān)于Python Excel操作的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python 內(nèi)置函數(shù)globals()和locals()對(duì)比詳解

    Python 內(nèi)置函數(shù)globals()和locals()對(duì)比詳解

    這篇文章主要介紹了Python globals()和locals()對(duì)比詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • Python+OpenCV實(shí)現(xiàn)尋找到圓點(diǎn)標(biāo)定板的角點(diǎn)

    Python+OpenCV實(shí)現(xiàn)尋找到圓點(diǎn)標(biāo)定板的角點(diǎn)

    這篇文章主要為大家詳細(xì)介紹了Python+OpenCV實(shí)現(xiàn)找到圓點(diǎn)標(biāo)定板所有點(diǎn)后通過距離找兩個(gè)角點(diǎn),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2022-11-11
  • DataFrame數(shù)據(jù)框模糊查詢與去重方式

    DataFrame數(shù)據(jù)框模糊查詢與去重方式

    數(shù)據(jù)框模糊查詢通常使用contains函數(shù)和正則表達(dá)式來實(shí)現(xiàn),可以查詢以某個(gè)字符開頭、包含或結(jié)尾的數(shù)據(jù),若數(shù)據(jù)類型不一致可能會(huì)報(bào)錯(cuò),需統(tǒng)一為str類型,數(shù)據(jù)框去重則通過drop_duplicates函數(shù)實(shí)現(xiàn),可指定列進(jìn)行去重,并有多種處理重復(fù)值的方式
    2024-09-09
  • python動(dòng)態(tài)監(jiān)控日志內(nèi)容的示例

    python動(dòng)態(tài)監(jiān)控日志內(nèi)容的示例

    本文介紹如何使用Python動(dòng)態(tài)監(jiān)控程序日志的內(nèi)容,這里的動(dòng)態(tài)指的是日志文件不斷的追加新的日志內(nèi)容,動(dòng)態(tài)監(jiān)控是指監(jiān)控日志新追加的日志內(nèi)容
    2014-02-02
  • Python求解任意閉區(qū)間的所有素?cái)?shù)

    Python求解任意閉區(qū)間的所有素?cái)?shù)

    本篇文章是一篇關(guān)于python求素?cái)?shù)的知識(shí)點(diǎn)內(nèi)容,如果大家在應(yīng)用中有用的到,不妨跟著學(xué)習(xí)下。
    2018-06-06
  • Python調(diào)用Pandas實(shí)現(xiàn)Excel讀取

    Python調(diào)用Pandas實(shí)現(xiàn)Excel讀取

    這篇文章主要為大家介紹了在Python中如何調(diào)用Pandas實(shí)現(xiàn)Excel文件的讀取,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2022-04-04
  • Python可視化學(xué)習(xí)之seaborn調(diào)色盤

    Python可視化學(xué)習(xí)之seaborn調(diào)色盤

    seaborn是在matplotlib基礎(chǔ)上封裝的,所以matplotlib的調(diào)色盤seaborn都可以使用。本文系統(tǒng)介紹seaborn調(diào)色盤,相較于matplotlib,有諸多不同,需要的可以參考一下
    2022-02-02
  • Python實(shí)現(xiàn)網(wǎng)頁文件轉(zhuǎn)PDF文件和PNG圖片的示例代碼

    Python實(shí)現(xiàn)網(wǎng)頁文件轉(zhuǎn)PDF文件和PNG圖片的示例代碼

    這篇文章主要介紹了如何利用Python分別實(shí)現(xiàn)網(wǎng)頁文件轉(zhuǎn)為PDF文件和網(wǎng)頁文件轉(zhuǎn)PNG圖片的示例代碼,文中的代碼簡(jiǎn)潔易懂,感興趣的可以動(dòng)手試試
    2022-01-01
  • 教你如何用pycharm安裝pyqt5及其相關(guān)配置

    教你如何用pycharm安裝pyqt5及其相關(guān)配置

    這篇文章主要介紹了教你如何用pycharm安裝pyqt5及其相關(guān)配置,首先通過單獨(dú)創(chuàng)建一個(gè)文件夾來專門存放pyqt5的代碼并建立虛擬環(huán)境展開文章敘述,需要的小伙伴可以參考一下
    2022-04-04
  • Python實(shí)現(xiàn)App自動(dòng)簽到領(lǐng)取積分功能

    Python實(shí)現(xiàn)App自動(dòng)簽到領(lǐng)取積分功能

    這篇文章主要介紹了Python實(shí)現(xiàn)App自動(dòng)簽到領(lǐng)取積分功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-09-09

最新評(píng)論

富源县| 孝感市| 郯城县| 石景山区| 宜都市| 临湘市| 灵武市| 临江市| 深水埗区| 孟州市| 西丰县| 广平县| 黑山县| 馆陶县| 西安市| 德江县| 龙岩市| 涿鹿县| 吴堡县| 张家界市| 沙田区| 小金县| 湾仔区| 南充市| 商河县| 仲巴县| 南靖县| 南乐县| 资中县| 镇赉县| 汕尾市| 文化| 墨脱县| 高安市| 盐源县| 报价| 武义县| 思茅市| 墨竹工卡县| 洛宁县| 巴林右旗|