數據分析入門——pandas數據處理

1,處理重複數據

  使用duplicated檢測重複的行,返回一個series,若是不是第一次出現,也就是有重複行的時候,則爲True:數組

  

  對應的,能夠使用drop_duplicates來刪除重複的行:app

  

  以上兩個方法,都不能有重複的列dom

 2.map函數:列處理

  map() 是一個Series的函數,DataFrame結構中沒有map()。map()將一個自定義函數應用於Series結構中的每一個元素(elements)。函數

  傳入一個拉姆達表達式:spa

  

   能夠經過不存在的列名,利用map映射新增一列:(固然,此處map傳入的能夠是自定義函數,但不能是相似sum這樣的UDTF聚合函數,而必須是UDF函數).net

  

  其餘與apply、applymap等的區別,參考:http://www.javashuo.com/article/p-knjqzqty-gk.html3d

3.rename函數:替換索引

  使用renname函數替換行索引:(列索引經過columns控制同理,使用一個dict進行映射,包含映射的將會進行映射!)orm

  

  更加簡單粗暴的方法能夠直接經過df.index = 賦值操做來進行!對象

4.異常值檢測和過濾

   經過describe查看統計性數值:count——數據量有幾個數,mean是平均值,std表示標準差(波動),min/max最小/最大值,中間百分比則是取最小最大值之間的25%、50%等的值blog

  

  經過std求每一列的標準差:(能夠經過axis來控制軸)

  

  經過標準差,藉助any()函數(any函數一真即真,有一個True則返回True)來實現過濾

  例如檢測大於兩倍標準差的:(這裏經過控制軸,來取得每一個同窗而不是每一個科目的過濾值)

  

   順勢,就能夠過濾數據了:(經過boolean提取數據,參考:https://www.jianshu.com/p/b1be2eccd029

  

5.排序抽樣——take函數

  利用隨機生成的順序,結合take取數據:

  

  使用random.randint能夠實現隨機抽樣的效果

6.數據聚合(重點)

  數據聚合一般是數據處理的最後一步,通常是要使每一個數組產生惟一的值:

  一般分類涉及到的是:分組—>函數處理——>合併

  使用groupby分組:

  

  打印發現是一個GroupBy的對象,使用groups屬性,能夠查看分紅了哪幾個組:

    GroupBy對象的更多操做,參考:https://www.jianshu.com/p/42f1d2909bb6

  

  能夠經過篩選的方式,快速求出平均值等操做:(返回的是一個Series)

  

  經過merge,能夠整合平均值到原df中去:

  

  經過其餘列分組,同理:(若是不選擇列,則會對全部能操做的列進行操做,返回一個df結果)

  

  多列分組,同理:

  

 7.高級數據聚合

  能夠經過transform和apply實現相同功能,而且,apply能夠傳入一個匿名函數

  apply和map的區別,參考:https://blog.csdn.net/weixin_39791387/article/details/81487549

              https://www.jianshu.com/p/c384ac86c4a6

  

map() 方法是pandas.series.map()方法, 對DF中的元素級別的操做, 能夠對df的某列或某多列, 能夠參考文檔
apply(func) 是DF的屬性, 對DF中的行數據或列數據應用func操做.
applymap(func) 也是DF的屬性, 對整個DF全部元素應用func操做


————————————————
版權聲明:本文爲CSDN博主「諸葛老劉」的原創文章,遵循CC 4.0 by-sa版權協議,轉載請附上原文出處連接及本聲明。
原文連接:https://blog.csdn.net/weixin_39791387/article/details/81487549

 

  

相關文章
相關標籤/搜索