轉發本文並私信我"python",即可獲得Python資料以及更多系列文章(持續更新的)
經常聽別人說 Python 在數據領域有多厲害,結果學了很長時間,連數據處理都麻煩得要死。後來才發現,原來不是 Python 數據處理厲害,而是他有數據分析神器—— pandas
前言
本系列已經有一篇文章介紹 pandas 中實現 Excel 的 vlookup 函數的方式,但是 vlookup 中還有一個"模糊匹配"的功能,主要用於分段匹配,今天就來看看 pandas 中是如何做到同等效果。
案例1
今天,你接到一份緊急的臨時需求,數據表格如下:
轉發本文並私信我"python",即可獲得Python資料以及更多系列文章(持續更新的)
經常聽別人說 Python 在數據領域有多厲害,結果學了很長時間,連數據處理都麻煩得要死。後來才發現,原來不是 Python 數據處理厲害,而是他有數據分析神器—— pandas
前言
本系列已經有一篇文章介紹 pandas 中實現 Excel 的 vlookup 函數的方式,但是 vlookup 中還有一個"模糊匹配"的功能,主要用於分段匹配,今天就來看看 pandas 中是如何做到同等效果。
案例1
今天,你接到一份緊急的臨時需求,數據表格如下:
- 200百萬行的記錄
- 需要按照 分數 列,按規則計算出 評級
規則表如下:
轉發本文並私信我"python",即可獲得Python資料以及更多系列文章(持續更新的)
經常聽別人說 Python 在數據領域有多厲害,結果學了很長時間,連數據處理都麻煩得要死。後來才發現,原來不是 Python 數據處理厲害,而是他有數據分析神器—— pandas
前言
本系列已經有一篇文章介紹 pandas 中實現 Excel 的 vlookup 函數的方式,但是 vlookup 中還有一個"模糊匹配"的功能,主要用於分段匹配,今天就來看看 pandas 中是如何做到同等效果。
案例1
今天,你接到一份緊急的臨時需求,數據表格如下:
- 200百萬行的記錄
- 需要按照 分數 列,按規則計算出 評級
規則表如下:
- 這是特意為 Vlookup 而設計的規則表
若按 pandas 來設計規則表,那麼 Vlookup 的解決方式就會很麻煩。
怎麼辦?數據多到 Excel 也打不開,管你是 Vlookup 還是 Xlookup 也沒用。
轉發本文並私信我"python",即可獲得Python資料以及更多系列文章(持續更新的)
經常聽別人說 Python 在數據領域有多厲害,結果學了很長時間,連數據處理都麻煩得要死。後來才發現,原來不是 Python 數據處理厲害,而是他有數據分析神器—— pandas
前言
本系列已經有一篇文章介紹 pandas 中實現 Excel 的 vlookup 函數的方式,但是 vlookup 中還有一個"模糊匹配"的功能,主要用於分段匹配,今天就來看看 pandas 中是如何做到同等效果。
案例1
今天,你接到一份緊急的臨時需求,數據表格如下:
- 200百萬行的記錄
- 需要按照 分數 列,按規則計算出 評級
規則表如下:
- 這是特意為 Vlookup 而設計的規則表
若按 pandas 來設計規則表,那麼 Vlookup 的解決方式就會很麻煩。
怎麼辦?數據多到 Excel 也打不開,管你是 Vlookup 還是 Xlookup 也沒用。
多功能的 Vlookup
由於這次數據太多,用 Excel 已經不能打開此文件,因此我用少量數據簡單演示一下如何用 Vlookup 解決此問題:
轉發本文並私信我"python",即可獲得Python資料以及更多系列文章(持續更新的)
經常聽別人說 Python 在數據領域有多厲害,結果學了很長時間,連數據處理都麻煩得要死。後來才發現,原來不是 Python 數據處理厲害,而是他有數據分析神器—— pandas
前言
本系列已經有一篇文章介紹 pandas 中實現 Excel 的 vlookup 函數的方式,但是 vlookup 中還有一個"模糊匹配"的功能,主要用於分段匹配,今天就來看看 pandas 中是如何做到同等效果。
案例1
今天,你接到一份緊急的臨時需求,數據表格如下:
- 200百萬行的記錄
- 需要按照 分數 列,按規則計算出 評級
規則表如下:
- 這是特意為 Vlookup 而設計的規則表
若按 pandas 來設計規則表,那麼 Vlookup 的解決方式就會很麻煩。
怎麼辦?數據多到 Excel 也打不開,管你是 Vlookup 還是 Xlookup 也沒用。
多功能的 Vlookup
由於這次數據太多,用 Excel 已經不能打開此文件,因此我用少量數據簡單演示一下如何用 Vlookup 解決此問題:
- 其實就是最後一個參數輸入 1(True),即可
- 很重要一點,規則表的 值 列,記得要排好序,否則結果錯亂你也不知道
pandas 中的分段匹配
這種需求在數據處理一般稱為"分箱",pandas 中使用 cut 方法做到:
轉發本文並私信我"python",即可獲得Python資料以及更多系列文章(持續更新的)
經常聽別人說 Python 在數據領域有多厲害,結果學了很長時間,連數據處理都麻煩得要死。後來才發現,原來不是 Python 數據處理厲害,而是他有數據分析神器—— pandas
前言
本系列已經有一篇文章介紹 pandas 中實現 Excel 的 vlookup 函數的方式,但是 vlookup 中還有一個"模糊匹配"的功能,主要用於分段匹配,今天就來看看 pandas 中是如何做到同等效果。
案例1
今天,你接到一份緊急的臨時需求,數據表格如下:
- 200百萬行的記錄
- 需要按照 分數 列,按規則計算出 評級
規則表如下:
- 這是特意為 Vlookup 而設計的規則表
若按 pandas 來設計規則表,那麼 Vlookup 的解決方式就會很麻煩。
怎麼辦?數據多到 Excel 也打不開,管你是 Vlookup 還是 Xlookup 也沒用。
多功能的 Vlookup
由於這次數據太多,用 Excel 已經不能打開此文件,因此我用少量數據簡單演示一下如何用 Vlookup 解決此問題:
- 其實就是最後一個參數輸入 1(True),即可
- 很重要一點,規則表的 值 列,記得要排好序,否則結果錯亂你也不知道
pandas 中的分段匹配
這種需求在數據處理一般稱為"分箱",pandas 中使用 cut 方法做到:
- 我們從 csv 讀取數據,從 Excel 中讀取規則表
- 注意這是 pandas 的頂層方法,因此是 pd.cut()
- 第1參數傳入判斷數據列
- 第2參數傳入規則表的 值 ,但是 cut 方法必需給定所有區間的邊界。像本例子的規則表,沒有高於120分的結束邊界,我們需要添加一個很大的值作為結束邊界
- 參數 right,設置為 False ,只是為了與 vlookup 效果一致而已,表示:"右區間邊界開放",比如:120分,被劃分到 A+ 評級
- 參數 labels,就是返回的結果
可以看到 pandas 可以輕鬆從任意數據源中讀取數據,本例中即使你的數據源在各種數據庫也是沒問題 注意,bins 沒有升序排序時,會報錯。這是非常好的設計
看文字很難理解,看看這個示意圖,應該清晰很多:
轉發本文並私信我"python",即可獲得Python資料以及更多系列文章(持續更新的)
經常聽別人說 Python 在數據領域有多厲害,結果學了很長時間,連數據處理都麻煩得要死。後來才發現,原來不是 Python 數據處理厲害,而是他有數據分析神器—— pandas
前言
本系列已經有一篇文章介紹 pandas 中實現 Excel 的 vlookup 函數的方式,但是 vlookup 中還有一個"模糊匹配"的功能,主要用於分段匹配,今天就來看看 pandas 中是如何做到同等效果。
案例1
今天,你接到一份緊急的臨時需求,數據表格如下:
- 200百萬行的記錄
- 需要按照 分數 列,按規則計算出 評級
規則表如下:
- 這是特意為 Vlookup 而設計的規則表
若按 pandas 來設計規則表,那麼 Vlookup 的解決方式就會很麻煩。
怎麼辦?數據多到 Excel 也打不開,管你是 Vlookup 還是 Xlookup 也沒用。
多功能的 Vlookup
由於這次數據太多,用 Excel 已經不能打開此文件,因此我用少量數據簡單演示一下如何用 Vlookup 解決此問題:
- 其實就是最後一個參數輸入 1(True),即可
- 很重要一點,規則表的 值 列,記得要排好序,否則結果錯亂你也不知道
pandas 中的分段匹配
這種需求在數據處理一般稱為"分箱",pandas 中使用 cut 方法做到:
- 我們從 csv 讀取數據,從 Excel 中讀取規則表
- 注意這是 pandas 的頂層方法,因此是 pd.cut()
- 第1參數傳入判斷數據列
- 第2參數傳入規則表的 值 ,但是 cut 方法必需給定所有區間的邊界。像本例子的規則表,沒有高於120分的結束邊界,我們需要添加一個很大的值作為結束邊界
- 參數 right,設置為 False ,只是為了與 vlookup 效果一致而已,表示:"右區間邊界開放",比如:120分,被劃分到 A+ 評級
- 參數 labels,就是返回的結果
可以看到 pandas 可以輕鬆從任意數據源中讀取數據,本例中即使你的數據源在各種數據庫也是沒問題 注意,bins 沒有升序排序時,會報錯。這是非常好的設計
看文字很難理解,看看這個示意圖,應該清晰很多:
轉發本文並私信我"python",即可獲得Python資料以及更多系列文章(持續更新的)
經常聽別人說 Python 在數據領域有多厲害,結果學了很長時間,連數據處理都麻煩得要死。後來才發現,原來不是 Python 數據處理厲害,而是他有數據分析神器—— pandas
前言
本系列已經有一篇文章介紹 pandas 中實現 Excel 的 vlookup 函數的方式,但是 vlookup 中還有一個"模糊匹配"的功能,主要用於分段匹配,今天就來看看 pandas 中是如何做到同等效果。
案例1
今天,你接到一份緊急的臨時需求,數據表格如下:
- 200百萬行的記錄
- 需要按照 分數 列,按規則計算出 評級
規則表如下:
- 這是特意為 Vlookup 而設計的規則表
若按 pandas 來設計規則表,那麼 Vlookup 的解決方式就會很麻煩。
怎麼辦?數據多到 Excel 也打不開,管你是 Vlookup 還是 Xlookup 也沒用。
多功能的 Vlookup
由於這次數據太多,用 Excel 已經不能打開此文件,因此我用少量數據簡單演示一下如何用 Vlookup 解決此問題:
- 其實就是最後一個參數輸入 1(True),即可
- 很重要一點,規則表的 值 列,記得要排好序,否則結果錯亂你也不知道
pandas 中的分段匹配
這種需求在數據處理一般稱為"分箱",pandas 中使用 cut 方法做到:
- 我們從 csv 讀取數據,從 Excel 中讀取規則表
- 注意這是 pandas 的頂層方法,因此是 pd.cut()
- 第1參數傳入判斷數據列
- 第2參數傳入規則表的 值 ,但是 cut 方法必需給定所有區間的邊界。像本例子的規則表,沒有高於120分的結束邊界,我們需要添加一個很大的值作為結束邊界
- 參數 right,設置為 False ,只是為了與 vlookup 效果一致而已,表示:"右區間邊界開放",比如:120分,被劃分到 A+ 評級
- 參數 labels,就是返回的結果
可以看到 pandas 可以輕鬆從任意數據源中讀取數據,本例中即使你的數據源在各種數據庫也是沒問題 注意,bins 沒有升序排序時,會報錯。這是非常好的設計
看文字很難理解,看看這個示意圖,應該清晰很多:
案例2:自動劃分
在實際分析工作中,你可能一開始並不清楚到底規則表的各個節點怎麼定義才合理。
比如你現在希望劃分3個段,但你不知道各個段之間的邊界怎麼定義才合理。那麼可以這樣子調用 cut 方法:
轉發本文並私信我"python",即可獲得Python資料以及更多系列文章(持續更新的)
經常聽別人說 Python 在數據領域有多厲害,結果學了很長時間,連數據處理都麻煩得要死。後來才發現,原來不是 Python 數據處理厲害,而是他有數據分析神器—— pandas
前言
本系列已經有一篇文章介紹 pandas 中實現 Excel 的 vlookup 函數的方式,但是 vlookup 中還有一個"模糊匹配"的功能,主要用於分段匹配,今天就來看看 pandas 中是如何做到同等效果。
案例1
今天,你接到一份緊急的臨時需求,數據表格如下:
- 200百萬行的記錄
- 需要按照 分數 列,按規則計算出 評級
規則表如下:
- 這是特意為 Vlookup 而設計的規則表
若按 pandas 來設計規則表,那麼 Vlookup 的解決方式就會很麻煩。
怎麼辦?數據多到 Excel 也打不開,管你是 Vlookup 還是 Xlookup 也沒用。
多功能的 Vlookup
由於這次數據太多,用 Excel 已經不能打開此文件,因此我用少量數據簡單演示一下如何用 Vlookup 解決此問題:
- 其實就是最後一個參數輸入 1(True),即可
- 很重要一點,規則表的 值 列,記得要排好序,否則結果錯亂你也不知道
pandas 中的分段匹配
這種需求在數據處理一般稱為"分箱",pandas 中使用 cut 方法做到:
- 我們從 csv 讀取數據,從 Excel 中讀取規則表
- 注意這是 pandas 的頂層方法,因此是 pd.cut()
- 第1參數傳入判斷數據列
- 第2參數傳入規則表的 值 ,但是 cut 方法必需給定所有區間的邊界。像本例子的規則表,沒有高於120分的結束邊界,我們需要添加一個很大的值作為結束邊界
- 參數 right,設置為 False ,只是為了與 vlookup 效果一致而已,表示:"右區間邊界開放",比如:120分,被劃分到 A+ 評級
- 參數 labels,就是返回的結果
可以看到 pandas 可以輕鬆從任意數據源中讀取數據,本例中即使你的數據源在各種數據庫也是沒問題 注意,bins 沒有升序排序時,會報錯。這是非常好的設計
看文字很難理解,看看這個示意圖,應該清晰很多:
案例2:自動劃分
在實際分析工作中,你可能一開始並不清楚到底規則表的各個節點怎麼定義才合理。
比如你現在希望劃分3個段,但你不知道各個段之間的邊界怎麼定義才合理。那麼可以這樣子調用 cut 方法:
- cut 方法的第2參數,我們指定3,表示劃分3段
- 不指定參數 labels,這可以看到劃分的區間。
你也可以指定 labels:
轉發本文並私信我"python",即可獲得Python資料以及更多系列文章(持續更新的)
經常聽別人說 Python 在數據領域有多厲害,結果學了很長時間,連數據處理都麻煩得要死。後來才發現,原來不是 Python 數據處理厲害,而是他有數據分析神器—— pandas
前言
本系列已經有一篇文章介紹 pandas 中實現 Excel 的 vlookup 函數的方式,但是 vlookup 中還有一個"模糊匹配"的功能,主要用於分段匹配,今天就來看看 pandas 中是如何做到同等效果。
案例1
今天,你接到一份緊急的臨時需求,數據表格如下:
- 200百萬行的記錄
- 需要按照 分數 列,按規則計算出 評級
規則表如下:
- 這是特意為 Vlookup 而設計的規則表
若按 pandas 來設計規則表,那麼 Vlookup 的解決方式就會很麻煩。
怎麼辦?數據多到 Excel 也打不開,管你是 Vlookup 還是 Xlookup 也沒用。
多功能的 Vlookup
由於這次數據太多,用 Excel 已經不能打開此文件,因此我用少量數據簡單演示一下如何用 Vlookup 解決此問題:
- 其實就是最後一個參數輸入 1(True),即可
- 很重要一點,規則表的 值 列,記得要排好序,否則結果錯亂你也不知道
pandas 中的分段匹配
這種需求在數據處理一般稱為"分箱",pandas 中使用 cut 方法做到:
- 我們從 csv 讀取數據,從 Excel 中讀取規則表
- 注意這是 pandas 的頂層方法,因此是 pd.cut()
- 第1參數傳入判斷數據列
- 第2參數傳入規則表的 值 ,但是 cut 方法必需給定所有區間的邊界。像本例子的規則表,沒有高於120分的結束邊界,我們需要添加一個很大的值作為結束邊界
- 參數 right,設置為 False ,只是為了與 vlookup 效果一致而已,表示:"右區間邊界開放",比如:120分,被劃分到 A+ 評級
- 參數 labels,就是返回的結果
可以看到 pandas 可以輕鬆從任意數據源中讀取數據,本例中即使你的數據源在各種數據庫也是沒問題 注意,bins 沒有升序排序時,會報錯。這是非常好的設計
看文字很難理解,看看這個示意圖,應該清晰很多:
案例2:自動劃分
在實際分析工作中,你可能一開始並不清楚到底規則表的各個節點怎麼定義才合理。
比如你現在希望劃分3個段,但你不知道各個段之間的邊界怎麼定義才合理。那麼可以這樣子調用 cut 方法:
- cut 方法的第2參數,我們指定3,表示劃分3段
- 不指定參數 labels,這可以看到劃分的區間。
你也可以指定 labels:
最後的劃分結果儘可能每個區間數量平衡,來看看各區間的數量:
轉發本文並私信我"python",即可獲得Python資料以及更多系列文章(持續更新的)
經常聽別人說 Python 在數據領域有多厲害,結果學了很長時間,連數據處理都麻煩得要死。後來才發現,原來不是 Python 數據處理厲害,而是他有數據分析神器—— pandas
前言
本系列已經有一篇文章介紹 pandas 中實現 Excel 的 vlookup 函數的方式,但是 vlookup 中還有一個"模糊匹配"的功能,主要用於分段匹配,今天就來看看 pandas 中是如何做到同等效果。
案例1
今天,你接到一份緊急的臨時需求,數據表格如下:
- 200百萬行的記錄
- 需要按照 分數 列,按規則計算出 評級
規則表如下:
- 這是特意為 Vlookup 而設計的規則表
若按 pandas 來設計規則表,那麼 Vlookup 的解決方式就會很麻煩。
怎麼辦?數據多到 Excel 也打不開,管你是 Vlookup 還是 Xlookup 也沒用。
多功能的 Vlookup
由於這次數據太多,用 Excel 已經不能打開此文件,因此我用少量數據簡單演示一下如何用 Vlookup 解決此問題:
- 其實就是最後一個參數輸入 1(True),即可
- 很重要一點,規則表的 值 列,記得要排好序,否則結果錯亂你也不知道
pandas 中的分段匹配
這種需求在數據處理一般稱為"分箱",pandas 中使用 cut 方法做到:
- 我們從 csv 讀取數據,從 Excel 中讀取規則表
- 注意這是 pandas 的頂層方法,因此是 pd.cut()
- 第1參數傳入判斷數據列
- 第2參數傳入規則表的 值 ,但是 cut 方法必需給定所有區間的邊界。像本例子的規則表,沒有高於120分的結束邊界,我們需要添加一個很大的值作為結束邊界
- 參數 right,設置為 False ,只是為了與 vlookup 效果一致而已,表示:"右區間邊界開放",比如:120分,被劃分到 A+ 評級
- 參數 labels,就是返回的結果
可以看到 pandas 可以輕鬆從任意數據源中讀取數據,本例中即使你的數據源在各種數據庫也是沒問題 注意,bins 沒有升序排序時,會報錯。這是非常好的設計
看文字很難理解,看看這個示意圖,應該清晰很多:
案例2:自動劃分
在實際分析工作中,你可能一開始並不清楚到底規則表的各個節點怎麼定義才合理。
比如你現在希望劃分3個段,但你不知道各個段之間的邊界怎麼定義才合理。那麼可以這樣子調用 cut 方法:
- cut 方法的第2參數,我們指定3,表示劃分3段
- 不指定參數 labels,這可以看到劃分的區間。
你也可以指定 labels:
最後的劃分結果儘可能每個區間數量平衡,來看看各區間的數量:
總結
- pd.cut() ,對數據做分箱處理
- 參數 bins 可以指定自己的規則表,也可以直接指定劃分段數目
- 指定劃分段數目時,會自動定義各個劃分區間
- 當指定的 bins 規則表沒有升序排序時,會報錯
需要源碼的小夥伴請轉發本文並私信我"python"
如果希望從零開始學習 pandas ,那麼可以看看我的 pandas 專欄。