import pandas as pd
df = pd.read_excel("data\salary_info.xlsx")
df.head()
首先導(dǎo)入pandas
庫(kù)。Pandas是一個(gè)用于數(shù)據(jù)分析的功能非常強(qiáng)大的python包,是數(shù)據(jù)分析的必學(xué)必備工具痒钝。這些了解一下即可,總之它們就是一個(gè)工具痢毒,能為我所用送矩,能解決問(wèn)題行,無(wú)需深入了解哪替,只需要了解我們要使用的部分就行了栋荸。
為方便后續(xù)代碼的書(shū)寫(xiě),慣常做法是給導(dǎo)入的庫(kù)起個(gè)“綽號(hào)”,比如import pandas as pd
的意思是導(dǎo)入pandas庫(kù)晌块,并取綽號(hào)為"pd"爱沟,這樣在后續(xù)的程序中直接用pd就可以代表pandas。
然后我們使用pd.read_excel
讀取Excel文件匆背,可直接將Excel文件讀取為一個(gè)數(shù)據(jù)框(DataFrame)呼伸。可以理解數(shù)據(jù)框就是一張Excel表钝尸,請(qǐng)看上圖括享,是不是很像我們常用的Excel表格呢?我們用df.head()
看一下它的前5行珍促,以便觀察是否有正確讀取铃辖。看起來(lái)是一切正常的猪叙。
下面我們就按不同的經(jīng)理來(lái)將這些數(shù)據(jù)拆分成不同的表格并單獨(dú)保存澳叉,以便通過(guò)郵件的方式發(fā)給對(duì)應(yīng)的經(jīng)理。當(dāng)然也可以按部門(mén)來(lái)拆分沐悦,原理是類似的成洗。總表及拆分后的表如下圖所示藏否∑垦辏可見(jiàn)拆分操作在不到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)理”的列,然后每個(gè)經(jīng)理只取一次名字点额,然后存入manager這個(gè)數(shù)組舔株。
managers
>>array(['李飛', '劉曉麗', '張春香', '李國(guó)際', '王明', '朱柳峰'], dtype=object)
然后我們將經(jīng)理的名字逐個(gè)傳入數(shù)據(jù)表,并逐個(gè)保存成新的Excel文件还棱。df.to_excel()
可實(shí)現(xiàn)將數(shù)據(jù)框存儲(chǔ)為Excel文件载慈。括號(hào)內(nèi)的參數(shù)為需要存入的路徑和文件名,此處我們希望把經(jīng)理的名字放在文件名里面以便區(qū)分,所以使用格式化字符串函數(shù).format
將經(jīng)理的名字傳入文件名。我們不想在Excel中顯示數(shù)據(jù)框的索引槽惫,因此index
設(shè)為False
盲镶。分拆后的Excel表如下圖所示,分拆成功喂江。
對(duì)于格式化字符串函數(shù).format
汁蝶,可通過(guò)如下例子理解位仁。即我們?cè)谇懊孀址蟹乓粋€(gè)"{}"晒杈,然后format()
括號(hào)內(nèi)的“”就是要放入"{}"中的值。
print("你好孔厉,{}拯钻!".format("世界"))
>>你好,世界撰豺!
所有源代碼和說(shuō)明都在Jupyter notebook上完成粪般,所用到的Excel 資料已上傳GitHub, 歡迎Fork或下載到本地隨意玩。污桦。亩歹。轉(zhuǎn)載請(qǐng)注明出處,謝謝凡橱。
GitHub鏈接:https://github.com/weidylan/Office_Automation_by_Using_Python
微信公眾號(hào):Python操作Office軟件高效工作