pandas數據清理和准備(一)


一、處理空值

1、判斷是否為控制

obj.isnull()判斷對象中的元素是否為空,如果為空返回True,否則返回False

obj.notnul()判讀對象中元素是否為空,如果為空返回False,否則返回True

2、刪除空值

Seriesobj.dropna() 將序列中的空值刪除

Seriesobj[Seriesobj.notnull()] 同上

DataFrameobj.dropna() 將df中包含空值的行全部刪除

DataFrameobj[DataFrameobj.notnull()] 同上

DataFrameobj.dropna(how='all'|'any',axis=1|0,thresh=num) #all標示如果全部為空值則刪除該行,any代表有一個就刪除該行,不寫how默認為any;axis代表判斷行還是列,thresh代表空值個數為num的行

def dropna(self, axis=0, how='any', thresh=None, subset=None,inplace=False):Return object with labels on given axis omitted where alternately any or all of the data are missing

Parameters ----------

axis : {0 or 'index', 1 or 'columns'}, or tuple/list thereof Pass tuple or list to drop on multiple axes

how : {'any', 'all'} * any : if any NA values are present, drop that label * all : if all values are NA, drop that label

thresh : int, default None int value : require that many non-NA values

subset : array-like Labels along other axis to consider, e.g. if you are dropping rows these would be a list of columns to include

inplace : boolean, default False If True, do operation inplace and return None.
3、填充空值

df.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None, **kwargs)

value:代表替換的值

inplace:代表是否將原來的df替換掉,默認為False即返回的是view

method = ffill| bfill 根據前值替換后來的nan,或根據后值替換

limit:限制向前或向后填充的個數

二、處理重復數據

1.判斷是否重復

obj.duplicated()  #如果該行與某一行數據完全一致,則為重復,返回一個相同行數的bool序列

2.刪除重復值

obj.drop_duplicated()  #默認刪除完全相同的行

drop_duplicates(self, subset=None, keep='first', inplace=False):

subset :如['a']代表a列中的重復值全部被刪除

keep:保留第一個值,參數為first,last

inplace:是否替換原來的df,默認為False

三、使用函數處理數據

1.大小寫轉換

df.str.lower()  #所有字母轉換為小寫

df.str.upper() #所有字母轉換為答謝

2、數據匹配轉換

Seriesobj.map(self, arg, na_action=None):

arg:可以是Series,dict,function;

    Series:與序列的索引相匹配,返回對應的序列的值

    dict:與字典的鍵相匹配,返回對應的值

 function:將函數作用於每一個元素,返回對應的值;可以使用lambda:x 函數

    na_action:None不考慮Nan值,ignore:不管是否與為Nan,直接計算

3、數據替換

data.replace(to_replace=None, value=None, inplace=False, limit=None, regex=False, method='pad', axis=None)

to_replace:可以是字符串、數值、列表、正則表達式、字典、序列或者None

value:被替換值,可以為列表必須與to_replace列表長度一致,字典(字典對應的鍵將被替換為值)

regex :True代表to_replace用正則表達式標示

method:pad:全部替換

 

   

    

 

 

 

 

 



 


免責聲明!

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



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