一、重复值处理
找出行重复的位置a = df.duplicated()
,如果是重复值返回True,反之返回False
根据列找出重复位置a = df.duplicated(['id','key'])
,有则返回True,反之返回False,根据返回值,将重复数据取出来df[a]
删除重复值,默认的是根据所有列,进行删除newDF = df.drop_duplicates()
,也可以指定某一列,进行重复值删除newDF = df.drop_duplicates('id')
二、缺失值处理
找到空值的位置isNA = df.isnull()
,空值的返回True,反之返回False
获取空值返回的行df[isNA.any(axis=1)]
,指定列,获取空值返回行df[isNA[[''key]].any(axis=1)]
给空值赋值df.fillna('未知')
删除缺失值df.dropna()
三、空格值处理
删除左空格df['name'].str.lstrip()
,删除右空格df['name'].str.rstrip()
,默认删除空格df['name'].str.strip()
四、数据抽取
使用slice函数进行数据的抽取df['tel'].str.slice(0,3)
,抽取索引为0,1,2位置的元素。对于是数值型的数据,需要转换成字符串格式,才能使用slice函数抽取,df['tel'].astype(str)
五、字段拆分
按照固定的字符,拆分已有字符串split(sep,n,expand = False)
,参数说明sep用于分割的字符串,n分割为多少列,expand是否展开为数据库,默认为False,如df['name'].str.split(' ',1,True)
六、记录抽取
是指根据一定的条件,对数据进行抽取。
常用的条件类型:(1)比较运算df[df.comments>1000]
(2)范围运算between(left,right),例如df[df.comments.between(1000,10000)]
(3)空值匹配pandas.isnull(column),例如df[pandas.isnull(df.title)]
(4)字符匹配str.contains(patten,na=False),例如df[df.title.str.contains('台电',na = False)]
(5)逻辑运算,与(&)或(|)取反(not),例如df[(df.comments>=1000)&(df.comments<=10000)]
七、随机抽样
是指随机从数据中,按照一定的行数或者比例抽取数据
随机抽样函数:DataFrame.sample(n,frac,replace=False)
,参数说明:n按个数抽样,frac按百分比抽样,replace是否可放回抽样,默认False不可放回