pandas常用數據清洗方法


數據預處理常用函數

  • df.duplicated() :判斷各行是重復,False為非重復值。
  • df.drop_duplicates():刪除重復行
  • df.fillna(0):用實數0填充na
  • df.dropna():按行刪除缺失數據,使用參數axis=0;按列刪除缺失值,使用參數axis=1,how = "all" 全部是NA才刪,"any"只要有NA就刪除
  • del df['col1']:直接刪除某列
  • df.drop([]'col1',……],axis=1):刪除指定列,也可以刪除指定行
  • df.rename(index={'row1':'A'},columns ={'col1':'B'}):重命名索引名和列名
  • df.replace():替換df值,前后值可以用字典表,{'1':'A','2:'B'}
  • hr_data['col1'].map(function):Series.map,對指定列進行函數轉換
  • pd.merge(df1,df2,on='col1',how='inner',sort=True):合並兩個df,按照共有的列作內連接(交集),outter為外連接(並集),結果排序。
  • pd.concat([df1,df2]):多個Series堆疊成多行。
  • df1.combine_first(df2):用df2的數據補充df1的缺失值NAN。

 

數據集介紹

以下各例子均使用如下數據集進行演示。


duplicated()

判斷各行是重復,False為非重復值。


drop_duplicates()

刪除重復行

通過指定列,刪除重復行


fillna(value=0)

對缺失值進行填充 ,用實數0填充na。


df.dropna()

通常情況下,刪除行使用參數axis = 0,刪除列使用axis = 1。

按列刪除缺失值,使用參數axis=1。

how = "all" 全部是NA才刪,"any"只要有NA就刪除


del df['col1']

直接刪除某列。


df.drop()

  • labels 就是要刪除的行列的名字,用列表給定。
  • axis=0 刪除行,axis=1 刪除列。
  • index 直接指定要刪除的行。
  • columns 直接指定要刪除的列。

刪除指定行


df.rename()

重命名索引名和列名。


df.replace()

替換df值,前后值可以用字典表,{'1':'A','2:'B'}。


hr_data['col1'].map(function)

Series.map,對指定列進行函數轉換。


pd.merge(df1,df2,on='col1',how='inner',sort=True)

merge 函數通過一個或多個鍵來將數據集的行連接起來。該函數的主要 應用場景是針對同一個主鍵存在兩張包含不同特征的表,通過該主鍵的連接,將兩張表進行合並。合並之后,兩張表的行數沒有增加,列數是兩張表的列數之和減一。

{!-- PGC_COLUMN --}

  • on=None 指定連接的列名,若兩列需要連接的列名不一樣,可以通過left_on和right_on 來具體指定
  • how=’inner’,參數指的是左右兩個表主鍵那一列中存在不重合的行時,取結果的方式:inner表示交集,outer 表示並集,left 和right 表示取某一邊。

pd.concat([df1,df2])

拼接兩個數據集,可在行或者列上合並。

axis=0 是行拼接,拼接之后行數增加,列數也根據join來定,join=’outer’時,列數是兩表並集。同理join=’inner’,列數是兩表交集。


df1.combine_first(df2)

合並重疊數據,用df2的數據補充df1的缺失值NAN。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM