一、處理空值
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:全部替換