懂Excel也能輕鬆入門Python數據分析包pandas(二):高級篩選(上)

2021-01-12 Python數據世界

更多 Python 數據處理的乾貨,敬請關注!!!!

系列文章:

懂Excel就能輕鬆入門Python數據分析包pandas(一):篩選功能

前言

經常聽別人說 Python 在數據領域有多厲害,結果學了很長時間,連數據處理都麻煩得要死。後來才發現,原來不是 Python 數據處理厲害,而是他有數據分析神器—— pandas 。

上一篇文章從 Excel 篩選為核心,介紹 pandas 中的實現,但是,Excel 中還有一個高級篩選的功能,普通的篩選與其對比,就只能算是"低級篩選"功能了。接下來,通過簡單到複雜的需求,看看這是怎麼樣的一個功能。

數據

本文示例數據如下:

某學校的一份考試成績表(8科成績)人名已做脫敏處理加載數據

pandas需要加載Excel數據,非常容易,如下:

大部分參數上一篇文章已經有說明,這裡說說重點由於工作表中有多餘的列數據,我們只需要前10列,因此指定 usecols 參數。他接受一個列表。list(range(0,10)),其實相當於[0,1,2…………,9]的一個列表條件過濾

先來一個超級簡單例子,來看看怎麼操作 Excel 的高級篩選。

"姓名是A1的記錄",Excel高級篩選操作步驟如下:

功能區 "數據" 頁,在"篩選大圖標" 右下有一個 "高級" ,點擊出來高級篩選功能窗口主要看上圖2的紅框,選擇我們的數據源區域,記得要包含標題上圖2的藍框是條件區域,條件區域的選擇如圖點擊確定,即可篩選出姓名 A1 的記錄看看條件區域的設定:

格式為,標題+條件值(上下單元格)標題必須與數據源對應的列一致,比如這裡指定姓名列,所以條件區域的標題也是"姓名"條件值我們使用 ="=A1"如果只是指定文本值 A1 ,Excel 默認會把姓名前綴A1的記錄篩選出來。

pandas中沒有啥高級篩選的說法,因為他的篩選本來就很靈活,看看pandas的實現:

簡單易懂,都是之前文章介紹過的,這裡不多說

特定值過濾

"4、5或7班的記錄",Excel高級篩選的條件區域設置如下:

紅框部分就是條件區域標題是"班級",這要與數據源保持一致條件值區域多行表示"或"關係,上圖就是表示班級是4或5或7,任意一個符合的記錄pandas實現如下:

同樣使用 query 方法in [4,5,6] ,語義清晰,班級是在列表中即符合pandas的query查詢可以很靈活,可以接受外部的一個列表變量,如下:

查詢字符串要使用外部變量,只需要寫 "@+變量名字" 即可範圍過濾

"總分450至500之間的記錄",Excel高級篩選的條件區域設置如下:

數據源沒有總分列,添加一個 sum 公式的總分列

條件區域在同一行,表示"並且"關係條件值可以直接使用常用的比較符號還是要注意條件標題"總分"pandas實現如下:

第一句,添加新列,總和列。pandas 新增列非常簡單,df[新列名字]=新列值,即可df.loc[:,'語文':'生物'] ,是獲取語文到生物之間的列的數據.sum(axis=1) ,橫向求和。因為 pandas 可以靈活對行或列做運算,通過 axis 即可表達運算是對行還是列操作。第二句即查詢,通俗易懂"語文高於90,或者,數學高於或等於100",Excel高級篩選的條件區域設置如下:

pandas實現如下:

query 中的查詢字符串可以使用 python 中的邏輯關鍵字 and 或 or 這些都可以

下篇預告

本文從 Excel 高級篩選角度介紹簡單的應用,下一篇將講解更複雜的應用,先看看有哪些複雜需求:

"總分高於全班平均分的學生",這需要每行記錄與整體平均對比"總分高於所在班級平均分的學校" ,這是上一條的升級版"全級中,8科成績都超出全級平均分的學生" ,每科成績都要細緻對比下篇將解決以上問題,敬請關注。

相關焦點

  • 懂Excel輕鬆入門Python數據分析包pandas(二十七):IF函數代替者
    此系列文章收錄在:數據大宇宙 > 數據處理 > E-pd轉發本文並私信我"python",即可獲得Python資料以及更多系列文章(持續更新的)經常聽別人說 Python 在數據領域有多厲害,結果學了很長時間,連數據處理都麻煩得要死。
  • 懂Excel就能輕鬆入門Python數據分析包pandas(十六):合併數據
    此系列文章收錄在公眾號中:數據大宇宙 > 數據處理 >E-pd經常聽別人說 Python 在數據領域有多厲害,結果學了很長時間,連數據處理都麻煩得要死。後來才發現,原來不是 Python 數據處理厲害,而是他有數據分析神器—— pandas前言本系列上一節說了拆分數據的案例,這次自然是說下怎麼合併數據。
  • 懂Excel輕鬆入門Python數據分析包pandas(二十一):透視表
    此系列文章收錄在公眾號中:數據大宇宙 > 數據處理 >E-pd經常聽別人說 Python 在數據領域有多厲害,結果學了很長時間,連數據處理都麻煩得要死。後來才發現,原來不是 Python 數據處理厲害,而是他有數據分析神器—— pandas前言本系列上一節文章最後我隨手使用了 pandas 中的透視表操作,之後有些小夥伴詢問我相關的問題。正好 pandas 的 pivot_table 也是與 Excel 透視表對應。本文簡單教你入門使用 pandas 完成透視表功能。
  • Python數據分析:pandas讀取和寫入數據
    我的公眾號是關於自己在數據分析/挖掘學習過程中的一些技術和總結分享,文章會持續更新......繼續深入學習pandas相關操作,數據讀取寫入、分組、合併,轉換等等。前面一篇文章裡已經寫了關於描述性統計以及常用的基本操作。接下來的一段時間裡,我將陸續地去掌握並輸出。這篇文章是關於數據讀取與寫入的知識點。
  • 懂Excel就能輕鬆入門Python數據分析包pandas(七):分列
    經常聽別人說 Python 在數據領域有多厲害,結果學了很長時間,連數據處理都麻煩得要死。後來才發現,原來不是 Python 數據處理厲害,而是他有數據分析神器—— pandas前言今天從兩個需求來看看數據分列功能,由於 Excel 自帶功能比較弱,在處理稍微複雜的需求時會顯得力不從心,因此,本系列文章將引入 Excel 中一個非常高效的數據處理插件—— Power Query,並且看看 pandas 是怎樣靈活解決。
  • Python視頻教程網課編程零基礎入門數據分析網絡爬蟲全套Python...
    高級編程(6套課程) 注:零基礎全能篇中,針對windows和liunx系統均有兩套課程可供選擇學習,單純學python,哪個系統都一樣,初學者只需選擇自己熟悉的系統學習相應課程即可。項目 15flask框架 17愛家租房項目 18通用爬蟲模塊使用 19Mongodb資料庫 20爬蟲scrapy框架及案例 21數據分析 22機器學習 23深度學習 24數據結構和算法 25python網絡爬蟲 26機器學習入門篇 27
  • 想成為高效數據科學家?不會Pandas怎麼行
    選自 towardsdatascience作者:Félix Revert機器之心編譯參與:Nurhachu Null、張倩Pandas 是為了解決數據分析任務而創建的一種基於 NumPy 的工具包,囊括了許多其他工具包的功能,具有易用、直觀、快速等優點。
  • 快速介紹Python數據分析庫pandas的基礎知識和代碼示例
    本附註的結構:導入數據導出數據創建測試對象查看/檢查數據選擇查詢數據清理篩選、排序和分組統計數據首先,我們需要導入pandas開始:import pandas as pd導入數據使用函數pd.read_csv直接將CSV轉換為數據格式。注意:還有另一個類似的函數pd。read_excel用於excel文件。
  • Excel VBA函數篇-3.19大數據時代必備查找技能 萬條數據能奈我何
    前景提要經常看電視或者是一些招聘信息的童鞋,應該就比較熟悉大數據這個概念,大數據簡單的理解就是非常龐大的數據處理,數據量的提升,最直接的結果就是普通的數據處理方法越來越慢了,現在也是推出了很多種針對大數據處理的語言,比方說比較火熱的python,他的pandas模塊,numpy模塊,完全就是為大數據而生的,說到這裡肯定很多童鞋就方了,那麼excel是不是就沒有用處了呢
  • python數據分析——pandas導入數據合集
    導入pandas庫import pandas as pd1.導入csv\txt文件數據pd.read_csv()常用參數:filepath_or_buffer:文件路徑(必填,其他參數按需求填寫)sep:指定分隔符,默認逗號','。header:指定第幾行作為表頭。
  • 使用pandas和openpyxl處理複雜Excel數據
    關於Excel數據處理,很多同學可能使用過Pyhton的pandas模塊,用它可以輕鬆地讀取和轉換Excel數據。但是實際中Excel表格結構可能比較雜亂,數據會分散不同的工作表中,而且在表格中分布很亂,這種情況下啊直接使用pandas就會非常吃力。本文蟲蟲給大家介紹使用pandas和openpyxl讀取這樣的數據的方法。
  • Pandas閃回咒!如何在Python中重寫SQL查詢?
    一些程式設計師只熟悉SQL中的數據操作,卻不熟悉Python中的數據操作,因此在完成項目時,我們不得不頻繁地在SQL和Python之間進行切換,導致了工作效率低下和生產能力下降。本文就教你一種方法,使用Pandas在Python中輕鬆重現SQL結果。
  • 用Python做數據分析:Pandas常用數據查詢語法
    如果誰能把常用的數據查詢語法做個對比就好了 ",我也曾不止一次地想享受前人的成果,無奈發現網上的文章側重不同且深淺不一,還涉及到一些Pandas新老版本的問題,於是決定自己動手。 排序 - 誰是銷售冠軍 如果你關心誰的全年銷售額最多,那麼就要求助於sort_values方法了,在excel內是右鍵篩選,SQL內是一個orderby。默認是順序排列的,所以要人為設定為False,如果你只想看第一名,只需要在該語句末尾添加.head(1) 。
  • python數據分析——pandas導出數據合集
    導入pandas庫:import pandas as pd導入基礎數據:df=pd.read_excel('數據.xlsx')1.將DataFrame寫入csv\txt文件DataFrame.to_csv()常用參數:path_or_buf=None:輸出文件路徑,默認None
  • 6個提升效率的pandas小技巧
    pandas是python中常用的數據分析庫,出現頻率非常高,而且pandas功能之多讓人咋舌,即使pandas老手也沒法保證能高效使用pandas做數據分析。這篇文章目的梳理幾個高效實用的pandas小技巧,供大家參考。1.
  • 數據分析從業者必看,10 個加速 python 數據分析的簡單的小技巧
    其中,有些可能是相當有名的,有些可能是新的,但我相信下次您從事數據分析項目時,它們會非常有用。1.Profiling the pandas dataframeProfiling 是一個幫助我們理解數據的程序,而 Pandas Profiling 正是實現這一點的一個 python 包。
  • 一張圖看遍數據分析神器Pandas所有語法
    Python在數據分析領域之所以牛,很大程度上是因為Pandas這個庫是在是太好用,廣泛應用於數據處理、數據分析等領域。回想起自己剛畢業那會,要做很多處理,總是自己的讀取文件、篩選過濾、關聯文件、聚合統計、繪製圖表等等工作都是用Python原生語法實現,效率極其低下並且容易出錯,當我後來接觸到Pandas簡直喜愛的要哭。
  • Pandas GUI:如何輕鬆獲取Pandas數據幀?
    PandasGUI,顧名思義,是一個用於分析Pandas數據幀的圖形用戶界面。該項目仍在積極開發中,可能會發生顛覆性的變化。import pandas as pdfrom pandasgui import showfrom pandasgui.datasets import titanicgui = show(titanic)可以通過以下方式導入數據集:titanic = pd.read_csv('https://github.com/adamerose/datasets/blob
  • Python學習120課 pandas簡介kaggle下載數據及pandas讀取外部數據
    【每天幾分鐘,從零入門python編程的世界!】numpy的基本的東西我們學習差不多了,後面具體應用中遇到問題具體分析,然後去深入了解遇到的新的知識點就行。現在我們開始學習pandas,pandas一般用的更多,pandas是基於numpy去寫的。pandas是一個專門做數據結構和數據分析的庫。
  • pandas指南:做更高效的數據科學家
    如果你是Python新手,很難知道針對特定任務的包哪個是最好的。你需要有經驗的人來告訴你。今天我要告訴你們的是:在數據科學中,有一個軟體包是你們絕對需要學習的,那就是pandas。而pandas真正有趣的地方是,很多其他的包也在裡面。pandas是一個核心包,因此它具有來自其他各種包的特性。