小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

實(shí)例3:從Excel薪資總表中自動分拆成各部門的表并保存

 Four兄 2019-08-25

    公司人事部的妹子經(jīng)常需要給各部門經(jīng)理提供其部門人員的情況,比如薪資、背景等。這些信息都是保密的,只能讓部門經(jīng)理知道,因此是不可能將總表發(fā)給他們,讓他們自己篩選查看的。通常的做法就是在Excel中建個數(shù)據(jù)透視表,然后按不同經(jīng)理或部門逐個篩選,復(fù)制粘貼到新的Excel文件中,分別發(fā)給各部門經(jīng)理。這個純體力活,讓程序去干就好了

    下面我們就來將公司的薪資按部門匯總,并自動生成各部門的Excel文件。代碼總共只需要5行,非常簡單高效。

import pandas as pd
df = pd.read_excel('data\salary_info.xlsx')
df.head()
工號姓名部門薪資經(jīng)理
0701001王波工程部8900李飛
1701002劉海洋生產(chǎn)部6000劉曉麗
2701003少和光品質(zhì)部6000張春香
3701004真凡巧倉務(wù)部4700李國際
4701005魯鴻運(yùn)船務(wù)部5500王明

    首先導(dǎo)入pandas庫。Pandas是一個用于數(shù)據(jù)分析的功能非常強(qiáng)大的python包,是數(shù)據(jù)分析的必學(xué)必備工具。這些了解一下即可,總之它們就是一個工具,能為我所用,能解決問題行,無需深入了解,只需要了解我們要使用的部分就行了。

    為方便后續(xù)代碼的書寫,慣常做法是給導(dǎo)入的庫起個“綽號”,比如import pandas as pd的意思是導(dǎo)入pandas庫,并取綽號為'pd',這樣在后續(xù)的程序中直接用pd就可以代表pandas。

    然后我們使用pd.read_excel讀取Excel文件,可直接將Excel文件讀取為一個數(shù)據(jù)框(DataFrame)??梢岳斫鈹?shù)據(jù)框就是一張Excel表,請看上圖,是不是很像我們常用的Excel表格呢?我們用df.head()看一下它的前5行,以便觀察是否有正確讀取??雌饋硎且磺姓5?。

    下面我們就按不同的經(jīng)理來將這些數(shù)據(jù)拆分成不同的表格并單獨(dú)保存,以便通過郵件的方式發(fā)給對應(yīng)的經(jīng)理。當(dāng)然也可以按部門來拆分,原理是類似的。總表及拆分后的表如下圖所示。可見拆分操作在不到1秒之內(nèi)就全部完成了,堪稱神速....

#拆分Excel表,并單獨(dú)保存
managers=df['經(jīng)理'].unique()
for manager in managers:
df[df['經(jīng)理']==manager].to_excel('data\salary_info_{}.xlsx'.format(manager),index=False)
print('完成!')

    因?yàn)樵诳偙碇?,?jīng)理的名下有很多員工,因此經(jīng)理的名字是重復(fù)的,我們只需要獲得所有經(jīng)理的名字一次就夠了,unique()就可以實(shí)現(xiàn)。df['經(jīng)理'].unique()可以理解為,從工作表中選取列名為“經(jīng)理”的列,然后每個經(jīng)理只取一次名字,然后存入manager這個數(shù)組。

managers
>>array(['李飛', '劉曉麗', '張春香', '李國際', '王明', '朱柳峰'], dtype=object)

    然后我們將經(jīng)理的名字逐個傳入數(shù)據(jù)表,并逐個保存成新的Excel文件。df.to_excel()可實(shí)現(xiàn)將數(shù)據(jù)框存儲為Excel文件。括號內(nèi)的參數(shù)為需要存入的路徑和文件名,此處我們希望把經(jīng)理的名字放在文件名里面以便區(qū)分,所以使用格式化字符串函數(shù).format將經(jīng)理的名字傳入文件名。我們不想在Excel中顯示數(shù)據(jù)框的索引,因此index設(shè)為False。分拆后的Excel表如下圖所示,分拆成功。

對于格式化字符串函數(shù).format,可通過如下例子理解。即我們在前面字符串中放一個'{}',然后format()括號內(nèi)的“”就是要放入'{}'中的值。

print('你好,{}!'.format('世界'))
>>你好,世界!

所有源代碼和說明都在Jupyter notebook上完成,所用到的Excel 資料已上傳GitHub, 歡迎Fork或下載到本地隨意玩。。。轉(zhuǎn)載請注明出處,謝謝。

GitHub鏈接:

https://github.com/weidylan/Office_Automation_by_Using_Python

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多