pandas去重和填补、删除空值

pandas去重和填补、删除空值

接着之前那个介绍pandas索引与选取的文章写的。如果有错误欢迎指出,谢谢。 总结的可能不全,后续会补充。
我是不想把相关函数的每个参数都介绍一遍,只介绍最基本的去重删除等操作。

一、去重:

所有的操作基于如下数表:
在这里插入图片描述
pandas的去重函数:pd.drop_duplicates()。

pandas.DataFrame(Series).drop_duplicates(self, subset=None, keep='first', inplace=False)

在这里插入图片描述
具体用法示例:

df.drop_duplicates(['C'])   # 对C列去重,保留下来的是第一行的数据。
df.drop_duplicates(['C''D'])  # 对C,D列去重。去重后无变化,因为CD两列相同的值并不在同一行上。
df.drop_duplicates(['C''E'])  # 对C,E列去重。会删去c这一行。
df.drop_duplicates()  # 无变化。因为数表中并没有两行或以上完全相同的。

二、空值处理:

基于以下数表:

在这里插入图片描述

  1. 要处理空值,首要的就是要找到空值。
    pandas判断是否为空值的函数(会判断数表内的每一个单元格的数字):
    df.isnull()
    结果为:
    在这里插入图片描述
    df.isnull().any()
    结果为:
    在这里插入图片描述
    任取一列的:

在这里插入图片描述
2. 找到空值之后,就要对空值进行处理:
**第一种处理方式:**利用pandas的处理空值的函数:
在这里插入图片描述
代码示例:

df.dropna()  # 去掉所有有空值的行
df['B'].dropna()  # 去掉B列里所有为空值的行

**第二种处理方式:**利用pandas填充空值的函数:
在这里插入图片描述
代码示例:

df.fillna(5)  # 把所有的空值用5填充
df['B'].fillna(5)  # 把B列里所有的空值用5填充

**第三种处理方式:**利用isnull()函数和pandas的序列索引进行空值填充:。
需要注意的是这样的空值填充方式会直接改变原表。

df.loc[df['B'].isnull(),'B'] = 1234  # 把B列里所有的空值用1234填充

在这里插入图片描述
暂时想到的就这么多。

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值