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