【python】数据清洗

1.处理缺失值

判断是否含缺失值/统计缺失值

#判断
## 判断列是否存在na
df.isnull().any()  #返回bool
df.notnull()

#统计
df.isnull().sum()
df['col_name'].value_counts(dropna=False) #分类汇总该列并统计缺失值

筛选所有含缺失值的表格

df[df.col_name.isnull()] 

删除含缺失值的数据

df.dropna(how = 'any') #只要含有缺失值就删除数据
df.dropna(how = 'all') #行数据要全部缺失,才会删除该行
df.dropna(subsey=['col_1','col_2'], how = 'any') #col_1和col_2任意一个含缺失值,则删除改行数据
df.dropna(subsey=['col_1','col_2'], how = 'all') #两列都含缺失值,删除

用新值填充空值

#用新值填充缺失值
df['col_name'].fillna(value = 'new_value',inplace = True)   

#用0填充
df[''].fillna(value=0) 

#用前值
df[''].fillna(method='ffill')

#用后值
df[''].fillna(method='bfill')

#用均值
df[''].fillna(df[''].mean(),inplace=True)   #inplace=true时,原数据改变,否则不变

对应值替换

(1)用DataFrame的 loc/iloc
df
tb
for i in range(len(tb)):
    if np.isnan(tb.loc[i,'value']):       
       tb.loc[i,'value'] = df[tb.loc[i,'weekday']]    #  df.loc[tb.iloc[i,1],0] 
(2)用apply()
# 或者自己写函数, 用apply()

col= ['weekday','value']
def func(col):
    weekday = col[0]
    value = col[1]
    if pd.isnull(value):
        if weekday == 'Mon':
            return 4444
        elif weekday == 'Fri':
            return 5555
    else:
        return value
tb['value'] = tb[col].apply(func, axis = 1)

2.清除某一列的字符空格

df['']=df[''].map(str.strip)

3.大小写转换

df['']=df[''].str.lower()

4.更改数据格式

df['id'].astype('str')

5.修改列名称

link

DataFrame.rename(mapper=None, index=None, columns=None, axis=None, copy=True, inplace=False, level=None)
'''
参数:
mapper, index, columns : 映射的规则。
axis:指定轴,可以是轴名称('index','columns')或数字(0,1),默认为index。
copy:布尔值,默认为True,复制底层数据。
inplace:布尔值,默认为False。指定是否返回新的DataFrame。如果为True,则在原df上修改,返回值为None。
level:int或level name,默认为None。如果是MultiIndex,只重命名指定级别的标签。
'''
  • 修改列名
df = df.rename(columns={'gender':'性别','A':'B'})
  • 替换列名分割符
df.columns = df.columns.str.replace('','_')

6.重复值处理

6.1 查询重复值

#对某一列
df.col_name.duplicated()              #返回bool,true>>>前面出现过了
df.col_name.duplicated().sum()        #总计

#对多列
df.duplicates(subset= ['col_1','col_2']) 

#对全表
df.loc[df.duplicated(),:]             #查询含重复值的所有数据
df.loc[df.duplicated(keep='first'),:] #第一次出先的结果被保留,后面出现的重复对象被筛选出
df.loc[df.duplicated(keep='last'),:] 
df.loc[df.duplicated(keep='False'),:] #mark all duplicates

6.2 删除重复值

#对某一列
df[''].drop_duplicates()
df[''].drop_duplicates(keep='last')  #删除前重复值,保留后; keep:first

#对多列
df.drop_duplicates(subset= ['col_1','col_2'])  #subset 默认none对所有去重;subset自定义列去重

#对全表
df.drop_duplicates(keep='')

7.数据值替换

df['education'].replace('本科','大学')

8.删除列/行

  • 列axis=1;行axis=0
df.drop(['',''],axis=1,inplace=True)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343