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