Python数据分析—Pandas数据清洗


数据清洗实质上也是数据质量分析,检查并处理原数据中是否存在不符合要求的数据。常见的有缺失值、异常值、重复数据

一、缺失值

1、查看缺失值

# 返回是否是缺失值的布尔值
df.isna()
# 返回是否是缺失值的布尔值
df.isnull()
# 返回值是isnull的反集
df.notnull()
# 或者更直观的
df.isnull().sum()

而在数据中赋值为None也被当作NAN

2、过滤缺失值

dropna(axis=0,how=‘any’,subset=None,inplace=False)

# 默认 axis=0 删除行,只要有缺失就删除,取全局,不改变原数据
df.dropna()
# 设置删除含缺失值的列
df.dropna(axis=1)
# 设置只有所有值为NAN才删除行或列
df.dropna(how='all')
# 局部删除某行列中含有缺失值的行列
df.dropna(subset=['索引名'])
# 改变原数据
df.dropna(inplace=True)

3、填充缺失值

df.fillna(value=None,method=None,axis=None,inplace=False,limit=None)

# 直接传数字
df.fillna(2)
# 传入字典,根据行列名填充
df.fillna({"X":3.0,"Y":4.0})
# 使用前一个值填充,插值方法默认为ffill
df.fillna(method='ffill')
# 使用后一个值来填充
df.fillna(method='bfill')
# 设置用于向前或向后填充时最大的填充范围
df.fillna(limit=2)
# 用均值等统计指标填充
df.fillna(df.mean())

二、异常值

异常值替换

# 替换一个值
df.replace(to_replace=替换前的值,value=要替换的值) 
# 替换多个值
df.replace(to_replace=[],value=[]) 
# 通过字典的方式
df.replace({前:后,前:后}) 

三、重复值

1、查看重复值

df.duplicated(subset=None, keep=‘first’)

# 默认保留首个出现的 keep='first'
df.duplicated()
# 设置保留最后出现的
df.duplicated(keep="last")
# 局部指定子列判断
df.duplicated(subset=[])

2、删除重复值

# 默认删除重复行
df.drop_duplicates()
# 设置删除最后出现的
df.drop_duplicates(keep="last")
# 局部指定子列删除
df.drop_duplicates(subset=[])

四、离散化

# 将连续数据离散化
pd.cut(data,[数据分组],labels=[各组标签])
# 统计每个区间的数值分布
pd.value_counts()

五、利用映射转换数据

如:将行索引全部大写

# map方法
f=lambda x:x.upper()
df.index.map(f)
# rename方法
df.rename(index=str.upper)
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值