pandas 更改单元格的值_懂Excel轻松入门Python数据分析包pandas(二十四):连续区域...
生活随笔
收集整理的這篇文章主要介紹了
pandas 更改单元格的值_懂Excel轻松入门Python数据分析包pandas(二十四):连续区域...
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
此系列文章收錄在公眾號中:數據大宇宙 > 數據處理 >E-pd
轉發本文并私信我"python",即可獲得Python資料以及更多系列文章(持續更新的)
經常聽別人說 Python 在數據領域有多厲害,結果學了很長時間,連數據處理都麻煩得要死。后來才發現,原來不是 Python 數據處理厲害,而是他有數據分析神器—— pandas
前言
本系列上一節已經介紹了最簡單的 shift 方法應用,這一節將結合其他技巧,解決諸如"某城市一年最大連續沒下雨天數"的問題。
Excel 中的實現方式直觀簡單
如下一份簡單的記錄表:
- 需要根據這份數據,得到最長連續下雨天數是多少,是幾號到幾號
- 上圖紅框是一部分符合條件的,其中最長的紅框是需要的結果
按照慣例,先看看如果在 Excel 上是怎么得到結果:
- D列 到 G列 是輔助列
- D列:是C列 的下位移列(不理解的看上期文章)
- E列:對比 C列 與 D列 是否不一樣
- F列:對 E列 的結果數值化,True 為1,False 為0
- G列:累計求和,上圖可直接看到 G2 單元格的公式,不多說了
- 注意看 G列 的內容,相當于根據 C列的內容,相同連續值被劃分到一個獨立的編號
- 接下來只需要條件篩選+分組統計,即可簡單求出結果
后面的條件篩選+分組不再用 Excel 操作了(因為操作比較麻煩)
pandas 中的對應實現
現在關鍵是怎么在 pandas 中完成上述 Excel 中的操作,實際非常簡單:
- 行2:簡單完成
- df.下雨.shift() 相當于 Excel 操作中的 D列
- (df.下雨.shift() != df.下雨) 相當于 Excel 操作中的 E列
- .cumsum() 相當于 Excel 操作中的 G列
接下來是分組統計,pandas 的分組其實不需要把輔助列加到 DataFrame 上的:
- 行4:篩選下雨的行的條件
- 行6:先對 df 過濾下雨的行,按 diff_nums 分組統計
- 結果是一下子統計出各個連續下雨的天數與日期范圍
結果是需要得到其中 count 列的最大值的行:
- 行8:使用 idxmax 得到最大值的行索引值
總結
本文重點:
- Series.shift + cumsum ,能實現連續符合條件的區域編號
- 此技巧能解決很多實際問題
需要源碼的小伙伴請轉發本文并私信我"python"
如果希望從零開始學習 pandas ,那么可以看看我的 pandas 專欄。
總結
以上是生活随笔為你收集整理的pandas 更改单元格的值_懂Excel轻松入门Python数据分析包pandas(二十四):连续区域...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java解析excel文件_1.3.1
- 下一篇: 20w7珠led驱动电源电路图_LED驱