最詳細的Excel模塊Openpyxl教程(四)-過濾和排序操作

在上期的推文中潜秋,我們介紹了使用openpyxl來進行公式的設置等操作鹅龄,相關推文可以從本公眾號的底部相關菜單獲取赞警。接下來的推文我們來學習一下openpyxl這個python模塊中的其他知識宛乃,我們這次的推文來看一下怎么使用Python來進行排序厢破。

一、Openpyxl中的排序

在openpyxl中排序并沒有實際效果扫皱,也就是說使用這個排序的操作會在相應的列頭上設置相關的指令足绅。假設現(xiàn)在我們有一個文件,如下所示:

我們來運行以下代碼韩脑,看看有什么情況:

from openpyxl import *
workbook = load_workbook('sort_file.xlsx')
worksheet = workbook['Sheet1']
worksheet.auto_filter.ref = "A1:B12"
worksheet.auto_filter.add_filter_column(0, ["Kiwi", "Apple", "Mango"])
worksheet.auto_filter.add_sort_condition("B2:B12")
workbook.save("sort_file.xlsx")

代碼說明:第四行代碼表示需要過濾排序的范圍氢妈;第五行代碼增加了過濾的列,0表示第1列段多,后面的列表表示需要選擇的關鍵字首量;第六行代碼的作用是為指定的單元格范圍添加排序條件。

運行代碼以后的數(shù)據(jù)截圖樣式顯示如下:可以發(fā)現(xiàn)进苍,這個表格我們已經(jīng)增加了相應的篩選按鈕加缘,且點擊篩選按鈕,可以看出Fruit列已經(jīng)勾選了“Apple,Kiwi,Mango”等關鍵詞觉啊。另外也可以通過打開Excel文件如果下拉篩選的按鈕生百,就可以看出其已經(jīng)勾選的項目了。

到目前柄延,我沒有發(fā)現(xiàn)可以直接實現(xiàn)過濾的方法。大家如果找到什么好的方法可以在微信公眾號后臺給我留言哈缀程。

既然openpyxl不能夠?qū)崿F(xiàn)我們的功能搜吧,那么我們該怎么實現(xiàn)這個個過濾和排序呢?請繼續(xù)看一下的方法杨凑。

二滤奈、Pandas中的排序

Pandas是一個強大的第三方數(shù)據(jù)處理Python模塊,能夠?qū)崿F(xiàn)很多的功能撩满。(后期本公眾號也會詳細的出一點Pandas的教程)蜒程,注意在pandas讀取文件的時候要依賴包xlrd模塊需要進行相應的安裝绅你。

那么對于上述文件,我們看該怎么進行數(shù)據(jù)的過濾和排序呢昭躺?

import pandas as pd
data_test = pd.read_excel('sort_file.xlsx')
df = pd.DataFrame(data_test)
# 以列“Fruit”的標簽列來進行升序排列
df_1 = df.sort_values('Fruit',ascending=True)
print(df_1)

輸出結(jié)果:

可以看出上述的數(shù)據(jù)已經(jīng)被排序了忌锯。

我們來解一下Pandas的這個sort_values()函數(shù)。第一個參數(shù)為by领炫,為排序的列名稱(字段)為列表偶垮,后面的ascending可選True和False為排序的方式。True為升序False為降序帝洪。

這里補充一個知識點似舵,在進行排序的時候,如果還存在一個字段Price葱峡,那么如果我們使用以下的代碼來進行排序砚哗,有什么作用呢?

df_2 = df.sort_values(['Fruit','Price'],ascending=False)

這行代碼告訴我們砰奕,這個by參數(shù)不僅僅可以傳入一個字符串蛛芥,還能傳入一個列表的。

那么這行代碼的意思就是:以Fruit進行降序排列脆淹,當Fruit中有相同的值則按Price進行降序排序常空。

再看一行代碼:

df_3 = df.sort_values(['Fruit','Price'],ascending=[False,True])

上述代碼也是比較常用的類型之一,很顯然對Fruit列進行排序?qū)rice進行升序排列盖溺。

Tips: sort_values()函數(shù)有一個參數(shù)inplace漓糙,這個inplace 控制排序后的數(shù)據(jù)集替換原來的數(shù)據(jù),默認為False烘嘱,即不替換原來的數(shù)據(jù)昆禽。在進行排序結(jié)束之后,我們的最后操作就是將數(shù)據(jù)寫入到Excel中:

import pandas as pd
data_test = pd.read_excel('sort_file.xlsx')
df = pd.DataFrame(data_test)
# 以列“Fruit”的標簽列來進行升序排列
df_1 = df.sort_values('Fruit',ascending=True)
writer =  pd.ExcelWriter('sort_file.xlsx')
df_1.to_excel(writer,sheet_name = 'Sheet1',index=False)
writer.save()

上述代碼的作用就是將排序后的數(shù)據(jù)寫入到原來的Excel文件中蝇庭。

三醉鳖、總結(jié)

以上就是本次的推文,推文介紹的是在Excel中進行排序的相關操作哮内,大家跟著學習的時候最好也跟著實踐一下盗棵。后期我們將繼續(xù)介紹其他方面的知識。大家在學習的時候有什么疑問或者發(fā)現(xiàn)有什么好的方法可以在公眾號的后臺告訴我們哦北发。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末纹因,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子琳拨,更是在濱河造成了極大的恐慌瞭恰,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,816評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件狱庇,死亡現(xiàn)場離奇詭異惊畏,居然都是意外死亡恶耽,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評論 3 385
  • 文/潘曉璐 我一進店門颜启,熙熙樓的掌柜王于貴愁眉苦臉地迎上來偷俭,“玉大人,你說我怎么就攤上這事农曲∩缃粒” “怎么了?”我有些...
    開封第一講書人閱讀 158,300評論 0 348
  • 文/不壞的土叔 我叫張陵乳规,是天一觀的道長形葬。 經(jīng)常有香客問我,道長暮的,這世上最難降的妖魔是什么笙以? 我笑而不...
    開封第一講書人閱讀 56,780評論 1 285
  • 正文 為了忘掉前任,我火速辦了婚禮冻辩,結(jié)果婚禮上猖腕,老公的妹妹穿的比我還像新娘。我一直安慰自己恨闪,他們只是感情好倘感,可當我...
    茶點故事閱讀 65,890評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著咙咽,像睡著了一般老玛。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上钧敞,一...
    開封第一講書人閱讀 50,084評論 1 291
  • 那天蜡豹,我揣著相機與錄音,去河邊找鬼溉苛。 笑死镜廉,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的愚战。 我是一名探鬼主播娇唯,決...
    沈念sama閱讀 39,151評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼寂玲!你這毒婦竟也來了塔插?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,912評論 0 268
  • 序言:老撾萬榮一對情侶失蹤敢茁,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后留美,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體彰檬,經(jīng)...
    沈念sama閱讀 44,355評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡伸刃,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,666評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了逢倍。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片捧颅。...
    茶點故事閱讀 38,809評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖较雕,靈堂內(nèi)的尸體忽然破棺而出碉哑,到底是詐尸還是另有隱情,我是刑警寧澤亮蒋,帶...
    沈念sama閱讀 34,504評論 4 334
  • 正文 年R本政府宣布扣典,位于F島的核電站,受9級特大地震影響慎玖,放射性物質(zhì)發(fā)生泄漏贮尖。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,150評論 3 317
  • 文/蒙蒙 一趁怔、第九天 我趴在偏房一處隱蔽的房頂上張望湿硝。 院中可真熱鬧,春花似錦润努、人聲如沸关斜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽痢畜。三九已至,卻和暖如春随抠,著一層夾襖步出監(jiān)牢的瞬間裁着,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評論 1 267
  • 我被黑心中介騙來泰國打工拱她, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留二驰,地道東北人。 一個月前我還...
    沈念sama閱讀 46,628評論 2 362
  • 正文 我出身青樓秉沼,卻偏偏與公主長得像桶雀,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子唬复,可洞房花燭夜當晚...
    茶點故事閱讀 43,724評論 2 351