諾~,這就是表哥晚吞。
當(dāng)領(lǐng)導(dǎo)把一堆表哥發(fā)給你的時候桥言,你看著下午四點的鐘萌踱,感覺自己下班后的所有小計劃都一一破滅了,又要加班了... ... 你拿起了手機号阿,打開了美團外賣... ...
老板:把這個表哥的資料整理一下并鸵,整理好了發(fā)給我。
你以為老板想要的是介樣滴:
奮戰(zhàn)了幾個小時扔涧,發(fā)給老板园担。
老板半個小時回復(fù):這樣太亂了,把一個人的業(yè)績都合并一下枯夜。
你望著上千行的表哥手無足措弯汰,滿腦子都是表哥,怎么解決這個表哥湖雹?
實際老板想要的是介樣滴:
你一邊干著活咏闪,一邊想著各種問候領(lǐng)導(dǎo)的話,嗯摔吏,活還是得干鸽嫂。那么如何處理這上千行嗷嗷待合并的表哥呢?
拿好板凳征讲,小葵花課堂開課啦据某!
當(dāng)用戶一個需求甩到我們的面前的時候,就要分析一下有幾種解決辦法稳诚。
或者直接在網(wǎng)上搜一下,看大家有沒有遇到一樣的情況的瀑踢,如果有扳还,太好了,抄之橱夭。如果沒有氨距,那只能自己創(chuàng)造啦!或者看著別的代碼或者思路覺得不靠譜還不如自己一展身手棘劣。
方案1:
先讀取表哥數(shù)據(jù)俏让,然后for循環(huán)處理需要合并的單元格。
方案2:
站在巨人的肩膀上,尋找優(yōu)秀的框架首昔,在優(yōu)秀的框架基礎(chǔ)上進(jìn)一步修改寡喝。
之前短暫接觸過pandas,其dataframe特別符合數(shù)據(jù)表格勒奇,也許它有強大的功能呢预鬓?
那我們先打開pandas的官方網(wǎng)站,從官方文檔入手赊颠,國外優(yōu)秀的開源項目都有一份很完善的文檔作為支撐格二,不像國內(nèi),沒開源項目代碼開源竣蹦,文檔居然收費顶猜,呵呵噠~。離開源精神相差太遠(yuǎn)痘括,目測要發(fā)展起來很難长窄,因為它自己把自己給局限起來了,很不明智远寸。扯遠(yuǎn)了抄淑,我們繼續(xù)看pandas的官方文檔。
10分鐘了解pandas驰后,我看到了其中的Grouping肆资,其實就是分組排序嘛,學(xué)過數(shù)據(jù)庫的大家都懂灶芝,我們看看分組排序能否解決我們的需求:
剛翻了沒幾行就發(fā)現(xiàn)了讓我眼前一亮的東西郑原!你們發(fā)現(xiàn)了沒有?那我來個特寫好了:
紅框出第一行啊夜涕,是不是我們想要的樣子呢犯犁?
別慌,先繼續(xù)往下走走女器。
... ...
... ...
... ...
... ...
... ...
其中省略1000字酸役,本來想寫寫過程,最近實在是忙直接上結(jié)果吧驾胆。
關(guān)鍵部分代碼:
#依賴的軟件包涣澡,pandas、xlrd丧诺、openpyxl
import pandas as pd
import numpy as np
BASE_DIR='your file path' # 你的文件路徑
df = pd.read_excel(BASE_DIR)
df.fillna('', inplace=True)
df.reset_index(inplace=True)
# 上面一行關(guān)鍵代碼入桂,沒有這一行是不行滴,嘗試N次外加重復(fù)閱讀官方文檔之后的結(jié)果
wf_groups = df.groupby(['姓名', '電話', '家庭住址',
'業(yè)績', '考核', '時間'])
wf_groups.agg([np.mean]).to_excel('你想要的表哥導(dǎo)出.xlsx') # 導(dǎo)出在當(dāng)前文件夾下面
好了驳阎,我們跑完之后看看結(jié)果吧抗愁。
我們看到馁蒂,表哥基本上是你想要的表哥了,動動鼠標(biāo)刪掉沒有用到的行和列就可以了蜘腌。
如果有強迫癥沫屡,那么我們繼續(xù)。
from openpyxl import load_workbook
filename = 'your file path'
wb = load_workbook(filename)
ws = wb.active
ws.delete_cols(13) #刪除第 13 列數(shù)據(jù)
ws.delete_rows(3) #刪除第 3行數(shù)據(jù)
wb.save(filename)
wb.close()
根據(jù)你家表哥的樣子逢捺,刪除你想刪除的行或者列谁鳍。
如果你家表哥比較多,那就寫個for循環(huán)遍歷一下劫瞳,后面就是你跟你的表哥的事情了倘潜,小編就不過多摻和了。
不懂的小伙伴后臺私信我吧志于。