轉發本文並私信我"python",即可獲得Python資料以及各種心得(持續更新的)
系列文章:
前言
經常聽別人說 Python 在數據領域有多厲害,結果學了很長時間,連數據處理都麻煩得要死。後來才發現,原來不是 Python 數據處理厲害,而是他有數據分析神器—— pandas 。
上一篇文章從 Excel 篩選為核心,介紹 pandas 中的實現,但是,Excel 中還有一個高級篩選的功能,普通的篩選與其對比,就只能算是"低級篩選"功能了。接下來,通過簡單到複雜的需求,看看這是怎麼樣的一個功能。
數據
本文示例數據如下:
轉發本文並私信我"python",即可獲得Python資料以及各種心得(持續更新的)
系列文章:
前言
經常聽別人說 Python 在數據領域有多厲害,結果學了很長時間,連數據處理都麻煩得要死。後來才發現,原來不是 Python 數據處理厲害,而是他有數據分析神器—— pandas 。
上一篇文章從 Excel 篩選為核心,介紹 pandas 中的實現,但是,Excel 中還有一個高級篩選的功能,普通的篩選與其對比,就只能算是"低級篩選"功能了。接下來,通過簡單到複雜的需求,看看這是怎麼樣的一個功能。
數據
本文示例數據如下:
- 某學校的一份考試成績表(8科成績)
- 人名已做脫敏處理
加載數據
pandas 需要加載 Excel 數據,非常容易,如下:
轉發本文並私信我"python",即可獲得Python資料以及各種心得(持續更新的)
系列文章:
前言
經常聽別人說 Python 在數據領域有多厲害,結果學了很長時間,連數據處理都麻煩得要死。後來才發現,原來不是 Python 數據處理厲害,而是他有數據分析神器—— pandas 。
上一篇文章從 Excel 篩選為核心,介紹 pandas 中的實現,但是,Excel 中還有一個高級篩選的功能,普通的篩選與其對比,就只能算是"低級篩選"功能了。接下來,通過簡單到複雜的需求,看看這是怎麼樣的一個功能。
數據
本文示例數據如下:
- 某學校的一份考試成績表(8科成績)
- 人名已做脫敏處理
加載數據
pandas 需要加載 Excel 數據,非常容易,如下:
- 大部分參數上一篇文章已經有說明,這裡說說重點
- 由於工作表中有多餘的列數據,我們只需要前10列,因此指定 usecols 參數。他接受一個列表。list(range(0,10)),其實相當於[0,1,2…………,9]的一個列表
條件過濾
先來一個超級簡單例子,來看看怎麼操作 Excel 的高級篩選。
"姓名是 A1 的記錄",Excel 高級篩選操作步驟如下:
轉發本文並私信我"python",即可獲得Python資料以及各種心得(持續更新的)
系列文章:
前言
經常聽別人說 Python 在數據領域有多厲害,結果學了很長時間,連數據處理都麻煩得要死。後來才發現,原來不是 Python 數據處理厲害,而是他有數據分析神器—— pandas 。
上一篇文章從 Excel 篩選為核心,介紹 pandas 中的實現,但是,Excel 中還有一個高級篩選的功能,普通的篩選與其對比,就只能算是"低級篩選"功能了。接下來,通過簡單到複雜的需求,看看這是怎麼樣的一個功能。
數據
本文示例數據如下:
- 某學校的一份考試成績表(8科成績)
- 人名已做脫敏處理
加載數據
pandas 需要加載 Excel 數據,非常容易,如下:
- 大部分參數上一篇文章已經有說明,這裡說說重點
- 由於工作表中有多餘的列數據,我們只需要前10列,因此指定 usecols 參數。他接受一個列表。list(range(0,10)),其實相當於[0,1,2…………,9]的一個列表
條件過濾
先來一個超級簡單例子,來看看怎麼操作 Excel 的高級篩選。
"姓名是 A1 的記錄",Excel 高級篩選操作步驟如下:
轉發本文並私信我"python",即可獲得Python資料以及各種心得(持續更新的)
系列文章:
前言
經常聽別人說 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 的記錄
看看條件區域的設定:
轉發本文並私信我"python",即可獲得Python資料以及各種心得(持續更新的)
系列文章:
前言
經常聽別人說 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 的實現:
轉發本文並私信我"python",即可獲得Python資料以及各種心得(持續更新的)
系列文章:
前言
經常聽別人說 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 的實現:
- 簡單易懂,都是之前文章介紹過的,這裡不多說
轉發本文並私信我"python",即可獲得Python資料以及各種心得(持續更新的)
系列文章:
前言
經常聽別人說 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 高級篩選的條件區域設置如下:
轉發本文並私信我"python",即可獲得Python資料以及各種心得(持續更新的)
系列文章:
前言
經常聽別人說 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 實現如下:
轉發本文並私信我"python",即可獲得Python資料以及各種心得(持續更新的)
系列文章:
前言
經常聽別人說 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 查詢可以很靈活,可以接受外部的一個列表變量,如下:
轉發本文並私信我"python",即可獲得Python資料以及各種心得(持續更新的)
系列文章:
前言
經常聽別人說 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 高級篩選的條件區域設置如下:
轉發本文並私信我"python",即可獲得Python資料以及各種心得(持續更新的)
系列文章:
前言
經常聽別人說 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 公式的總分列
轉發本文並私信我"python",即可獲得Python資料以及各種心得(持續更新的)
系列文章:
前言
經常聽別人說 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 實現如下:
轉發本文並私信我"python",即可獲得Python資料以及各種心得(持續更新的)
系列文章:
前言
經常聽別人說 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 高級篩選的條件區域設置如下:
轉發本文並私信我"python",即可獲得Python資料以及各種心得(持續更新的)
系列文章:
前言
經常聽別人說 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 實現如下:
轉發本文並私信我"python",即可獲得Python資料以及各種心得(持續更新的)
系列文章:
前言
經常聽別人說 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 這些都可以
轉發本文並私信我"python",即可獲得Python資料以及各種心得(持續更新的)
系列文章:
前言
經常聽別人說 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科成績都超出全級平均分的學生" ,每科成績都要細緻對比
下篇將解決以上問題,敬請關注。
轉發本文並私信我"python",獲取本案例的 Excel 數據與源碼
如果希望從零開始學習 pandas ,那麼可以看看我的 pandas 專欄。