'Python數據處理,工具用錯了,還不如Excel的高級篩選功能'

Python Excel 文章 語文 外星人玩Python 2019-07-31
"
"
Python數據處理,工具用錯了,還不如Excel的高級篩選功能

轉發本文並私信我"python",即可獲得Python資料以及各種心得(持續更新的)

系列文章:

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

前言

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

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


數據

本文示例數據如下:

"
Python數據處理,工具用錯了,還不如Excel的高級篩選功能

轉發本文並私信我"python",即可獲得Python資料以及各種心得(持續更新的)

系列文章:

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

前言

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

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


數據

本文示例數據如下:

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

加載數據

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

"
Python數據處理,工具用錯了,還不如Excel的高級篩選功能

轉發本文並私信我"python",即可獲得Python資料以及各種心得(持續更新的)

系列文章:

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

前言

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

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


數據

本文示例數據如下:

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

加載數據

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

條件過濾

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

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

"
Python數據處理,工具用錯了,還不如Excel的高級篩選功能

轉發本文並私信我"python",即可獲得Python資料以及各種心得(持續更新的)

系列文章:

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

前言

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

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


數據

本文示例數據如下:

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

加載數據

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

條件過濾

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

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

"
Python數據處理,工具用錯了,還不如Excel的高級篩選功能

轉發本文並私信我"python",即可獲得Python資料以及各種心得(持續更新的)

系列文章:

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

前言

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

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


數據

本文示例數據如下:

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

加載數據

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

條件過濾

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

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

看看條件區域的設定:

"
Python數據處理,工具用錯了,還不如Excel的高級篩選功能

轉發本文並私信我"python",即可獲得Python資料以及各種心得(持續更新的)

系列文章:

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

前言

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

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


數據

本文示例數據如下:

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

加載數據

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

條件過濾

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

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

看看條件區域的設定:

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

  • 格式為,標題+條件值(上下單元格)
  • 標題必須與數據源對應的列一致,比如這裡指定姓名列,所以條件區域的標題也是"姓名"
  • 條件值我們使用 ="=A1"

如果只是指定文本值 A1 ,Excel 默認會把姓名前綴A1的記錄篩選出來。


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

"
Python數據處理,工具用錯了,還不如Excel的高級篩選功能

轉發本文並私信我"python",即可獲得Python資料以及各種心得(持續更新的)

系列文章:

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

前言

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

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


數據

本文示例數據如下:

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

加載數據

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

條件過濾

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

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

看看條件區域的設定:

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

  • 格式為,標題+條件值(上下單元格)
  • 標題必須與數據源對應的列一致,比如這裡指定姓名列,所以條件區域的標題也是"姓名"
  • 條件值我們使用 ="=A1"

如果只是指定文本值 A1 ,Excel 默認會把姓名前綴A1的記錄篩選出來。


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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

"
Python數據處理,工具用錯了,還不如Excel的高級篩選功能

轉發本文並私信我"python",即可獲得Python資料以及各種心得(持續更新的)

系列文章:

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

前言

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

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


數據

本文示例數據如下:

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

加載數據

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

條件過濾

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

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

看看條件區域的設定:

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

  • 格式為,標題+條件值(上下單元格)
  • 標題必須與數據源對應的列一致,比如這裡指定姓名列,所以條件區域的標題也是"姓名"
  • 條件值我們使用 ="=A1"

如果只是指定文本值 A1 ,Excel 默認會把姓名前綴A1的記錄篩選出來。


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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

特定值過濾

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

"
Python數據處理,工具用錯了,還不如Excel的高級篩選功能

轉發本文並私信我"python",即可獲得Python資料以及各種心得(持續更新的)

系列文章:

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

前言

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

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


數據

本文示例數據如下:

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

加載數據

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

條件過濾

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

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

看看條件區域的設定:

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

  • 格式為,標題+條件值(上下單元格)
  • 標題必須與數據源對應的列一致,比如這裡指定姓名列,所以條件區域的標題也是"姓名"
  • 條件值我們使用 ="=A1"

如果只是指定文本值 A1 ,Excel 默認會把姓名前綴A1的記錄篩選出來。


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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

特定值過濾

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

pandas 實現如下:

"
Python數據處理,工具用錯了,還不如Excel的高級篩選功能

轉發本文並私信我"python",即可獲得Python資料以及各種心得(持續更新的)

系列文章:

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

前言

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

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


數據

本文示例數據如下:

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

加載數據

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

條件過濾

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

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

看看條件區域的設定:

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

  • 格式為,標題+條件值(上下單元格)
  • 標題必須與數據源對應的列一致,比如這裡指定姓名列,所以條件區域的標題也是"姓名"
  • 條件值我們使用 ="=A1"

如果只是指定文本值 A1 ,Excel 默認會把姓名前綴A1的記錄篩選出來。


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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

特定值過濾

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

pandas 實現如下:

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

  • 同樣使用 query 方法
  • in [4,5,6] ,語義清晰,班級是在列表中即符合

pandas 的 query 查詢可以很靈活,可以接受外部的一個列表變量,如下:

"
Python數據處理,工具用錯了,還不如Excel的高級篩選功能

轉發本文並私信我"python",即可獲得Python資料以及各種心得(持續更新的)

系列文章:

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

前言

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

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


數據

本文示例數據如下:

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

加載數據

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

條件過濾

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

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

看看條件區域的設定:

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

  • 格式為,標題+條件值(上下單元格)
  • 標題必須與數據源對應的列一致,比如這裡指定姓名列,所以條件區域的標題也是"姓名"
  • 條件值我們使用 ="=A1"

如果只是指定文本值 A1 ,Excel 默認會把姓名前綴A1的記錄篩選出來。


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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

特定值過濾

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

pandas 實現如下:

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

  • 同樣使用 query 方法
  • in [4,5,6] ,語義清晰,班級是在列表中即符合

pandas 的 query 查詢可以很靈活,可以接受外部的一個列表變量,如下:

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

範圍過濾

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

"
Python數據處理,工具用錯了,還不如Excel的高級篩選功能

轉發本文並私信我"python",即可獲得Python資料以及各種心得(持續更新的)

系列文章:

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

前言

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

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


數據

本文示例數據如下:

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

加載數據

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

條件過濾

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

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

看看條件區域的設定:

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

  • 格式為,標題+條件值(上下單元格)
  • 標題必須與數據源對應的列一致,比如這裡指定姓名列,所以條件區域的標題也是"姓名"
  • 條件值我們使用 ="=A1"

如果只是指定文本值 A1 ,Excel 默認會把姓名前綴A1的記錄篩選出來。


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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

特定值過濾

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

pandas 實現如下:

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

  • 同樣使用 query 方法
  • in [4,5,6] ,語義清晰,班級是在列表中即符合

pandas 的 query 查詢可以很靈活,可以接受外部的一個列表變量,如下:

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

範圍過濾

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

  • 數據源沒有總分列,添加一個 sum 公式的總分列
"
Python數據處理,工具用錯了,還不如Excel的高級篩選功能

轉發本文並私信我"python",即可獲得Python資料以及各種心得(持續更新的)

系列文章:

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

前言

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

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


數據

本文示例數據如下:

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

加載數據

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

條件過濾

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

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

看看條件區域的設定:

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

  • 格式為,標題+條件值(上下單元格)
  • 標題必須與數據源對應的列一致,比如這裡指定姓名列,所以條件區域的標題也是"姓名"
  • 條件值我們使用 ="=A1"

如果只是指定文本值 A1 ,Excel 默認會把姓名前綴A1的記錄篩選出來。


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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

特定值過濾

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

pandas 實現如下:

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

  • 同樣使用 query 方法
  • in [4,5,6] ,語義清晰,班級是在列表中即符合

pandas 的 query 查詢可以很靈活,可以接受外部的一個列表變量,如下:

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

範圍過濾

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

  • 數據源沒有總分列,添加一個 sum 公式的總分列
Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

pandas 實現如下:

"
Python數據處理,工具用錯了,還不如Excel的高級篩選功能

轉發本文並私信我"python",即可獲得Python資料以及各種心得(持續更新的)

系列文章:

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

前言

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

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


數據

本文示例數據如下:

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

加載數據

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

條件過濾

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

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

看看條件區域的設定:

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

  • 格式為,標題+條件值(上下單元格)
  • 標題必須與數據源對應的列一致,比如這裡指定姓名列,所以條件區域的標題也是"姓名"
  • 條件值我們使用 ="=A1"

如果只是指定文本值 A1 ,Excel 默認會把姓名前綴A1的記錄篩選出來。


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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

特定值過濾

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

pandas 實現如下:

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

  • 同樣使用 query 方法
  • in [4,5,6] ,語義清晰,班級是在列表中即符合

pandas 的 query 查詢可以很靈活,可以接受外部的一個列表變量,如下:

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

範圍過濾

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

  • 數據源沒有總分列,添加一個 sum 公式的總分列
Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

pandas 實現如下:

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

  • 第一句,添加新列,總和列。pandas 新增列非常簡單,df[新列名字]=新列值,即可
  • df.loc[:,'語文':'生物'] ,是獲取語文到生物之間的列的數據
  • .sum(axis=1) ,橫向求和。因為 pandas 可以靈活對行或列做運算,通過 axis 即可表達運算是對行還是列操作。
  • 第二句即查詢,通俗易懂

"語文高於90,或者,數學高於或等於100",Excel 高級篩選的條件區域設置如下:

"
Python數據處理,工具用錯了,還不如Excel的高級篩選功能

轉發本文並私信我"python",即可獲得Python資料以及各種心得(持續更新的)

系列文章:

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

前言

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

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


數據

本文示例數據如下:

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

加載數據

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

條件過濾

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

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

看看條件區域的設定:

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

  • 格式為,標題+條件值(上下單元格)
  • 標題必須與數據源對應的列一致,比如這裡指定姓名列,所以條件區域的標題也是"姓名"
  • 條件值我們使用 ="=A1"

如果只是指定文本值 A1 ,Excel 默認會把姓名前綴A1的記錄篩選出來。


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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

特定值過濾

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

pandas 實現如下:

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

  • 同樣使用 query 方法
  • in [4,5,6] ,語義清晰,班級是在列表中即符合

pandas 的 query 查詢可以很靈活,可以接受外部的一個列表變量,如下:

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

範圍過濾

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

  • 數據源沒有總分列,添加一個 sum 公式的總分列
Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

pandas 實現如下:

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

  • 第一句,添加新列,總和列。pandas 新增列非常簡單,df[新列名字]=新列值,即可
  • df.loc[:,'語文':'生物'] ,是獲取語文到生物之間的列的數據
  • .sum(axis=1) ,橫向求和。因為 pandas 可以靈活對行或列做運算,通過 axis 即可表達運算是對行還是列操作。
  • 第二句即查詢,通俗易懂

"語文高於90,或者,數學高於或等於100",Excel 高級篩選的條件區域設置如下:

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

pandas 實現如下:

"
Python數據處理,工具用錯了,還不如Excel的高級篩選功能

轉發本文並私信我"python",即可獲得Python資料以及各種心得(持續更新的)

系列文章:

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

前言

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

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


數據

本文示例數據如下:

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

加載數據

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

條件過濾

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

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

看看條件區域的設定:

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

  • 格式為,標題+條件值(上下單元格)
  • 標題必須與數據源對應的列一致,比如這裡指定姓名列,所以條件區域的標題也是"姓名"
  • 條件值我們使用 ="=A1"

如果只是指定文本值 A1 ,Excel 默認會把姓名前綴A1的記錄篩選出來。


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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

特定值過濾

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

pandas 實現如下:

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

  • 同樣使用 query 方法
  • in [4,5,6] ,語義清晰,班級是在列表中即符合

pandas 的 query 查詢可以很靈活,可以接受外部的一個列表變量,如下:

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

範圍過濾

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

  • 數據源沒有總分列,添加一個 sum 公式的總分列
Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

pandas 實現如下:

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

  • 第一句,添加新列,總和列。pandas 新增列非常簡單,df[新列名字]=新列值,即可
  • df.loc[:,'語文':'生物'] ,是獲取語文到生物之間的列的數據
  • .sum(axis=1) ,橫向求和。因為 pandas 可以靈活對行或列做運算,通過 axis 即可表達運算是對行還是列操作。
  • 第二句即查詢,通俗易懂

"語文高於90,或者,數學高於或等於100",Excel 高級篩選的條件區域設置如下:

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

pandas 實現如下:

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

  • query 中的查詢字符串可以使用 python 中的邏輯關鍵字 and 或 or 這些都可以
"
Python數據處理,工具用錯了,還不如Excel的高級篩選功能

轉發本文並私信我"python",即可獲得Python資料以及各種心得(持續更新的)

系列文章:

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

前言

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

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


數據

本文示例數據如下:

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

加載數據

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

條件過濾

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

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

看看條件區域的設定:

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

  • 格式為,標題+條件值(上下單元格)
  • 標題必須與數據源對應的列一致,比如這裡指定姓名列,所以條件區域的標題也是"姓名"
  • 條件值我們使用 ="=A1"

如果只是指定文本值 A1 ,Excel 默認會把姓名前綴A1的記錄篩選出來。


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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

特定值過濾

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

pandas 實現如下:

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

  • 同樣使用 query 方法
  • in [4,5,6] ,語義清晰,班級是在列表中即符合

pandas 的 query 查詢可以很靈活,可以接受外部的一個列表變量,如下:

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

範圍過濾

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

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

  • 數據源沒有總分列,添加一個 sum 公式的總分列
Python數據處理,工具用錯了,還不如Excel的高級篩選功能

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

pandas 實現如下:

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

  • 第一句,添加新列,總和列。pandas 新增列非常簡單,df[新列名字]=新列值,即可
  • df.loc[:,'語文':'生物'] ,是獲取語文到生物之間的列的數據
  • .sum(axis=1) ,橫向求和。因為 pandas 可以靈活對行或列做運算,通過 axis 即可表達運算是對行還是列操作。
  • 第二句即查詢,通俗易懂

"語文高於90,或者,數學高於或等於100",Excel 高級篩選的條件區域設置如下:

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

pandas 實現如下:

Python數據處理,工具用錯了,還不如Excel的高級篩選功能

  • query 中的查詢字符串可以使用 python 中的邏輯關鍵字 and 或 or 這些都可以
Python數據處理,工具用錯了,還不如Excel的高級篩選功能


下篇預告

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

  • "總分高於全班平均分的學生",這需要每行記錄與整體平均對比
  • "總分高於所在班級平均分的學校" ,這是上一條的升級版
  • "全級中,8科成績都超出全級平均分的學生" ,每科成績都要細緻對比

下篇將解決以上問題,敬請關注。

轉發本文並私信我"python",獲取本案例的 Excel 數據與源碼

如果希望從零開始學習 pandas ,那麼可以看看我的 pandas 專欄。

"

相關推薦

推薦中...