100天精通Python(数据分析篇)——第68天:Pandas数据清洗函数大全

news2024/10/6 5:53:47

在这里插入图片描述

文章目录

  • 每篇前言
  • 1. duplicated()
  • 2. drop_duplicates()
  • 3. isnull()
  • 4. notnull()
  • 5. dropna()
  • 6. fillna()
  • 7. ffill()
  • 8. bfill()
  • 9. replace()
  • 10. str.replace()
  • 11. str.split.str()

每篇前言

  • 🏆🏆作者介绍:Python领域优质创作者、华为云享专家、阿里云专家博主、2021年CSDN博客新星Top6

  • 🔥🔥本文已收录于Python全栈系列专栏:《100天精通Python从入门到就业》
  • 📝​📝​此专栏文章是专门针对Python零基础小白所准备的一套完整教学,从0到100的不断进阶深入的学习,各知识点环环相扣
  • 🎉🎉订阅专栏后续可以阅读Python从入门到就业100篇文章还可私聊进两百人Python全栈交流群(手把手教学,问题解答); 进群可领取80GPython全栈教程视频 + 300本计算机书籍:基础、Web、爬虫、数据分析、可视化、机器学习、深度学习、人工智能、算法、面试题等。
  • 🚀🚀加入我一起学习进步,一个人可以走的很快,一群人才能走的更远!

在这里插入图片描述
在这里插入图片描述

1. duplicated()

判断序列元素是否重复

语法格式

DataFrame.duplicated(subset=None,keep='first')

参数说明

  • subset:列标签,可选, 默认使用所有列,只考虑某些列来识别重复项传入列标签或者列标签的序列

  • keep:{‘first’,‘last’,False},默认’first’

    • first:删除第一次出现的重复项。

    • last:删除重复项,除了最后一次出现。

    • false:删除所有重复项

返回布尔型Series表示每行是否为重复行

示例代码:

import numpy as np
import pandas as pd

df_obj = pd.DataFrame({'data1': ['a', 'a', 'a', 'b', 'b', 'b', 'c', 'c'],
                       'data2': [1, 1, 2, 3, 4, 5, 5, 5]})
print(df_obj)

print(df_obj.duplicated())

运行结果:
在这里插入图片描述

2. drop_duplicates()

删除重复行,默认判断全部列,可指定按某些列判断

语法格式

DataFrame.drop_duplicates(
        self,
        subset: Hashable | Sequence[Hashable] | None = None,
        keep: Literal["first"] | Literal["last"] | Literal[False] = "first",
        inplace: bool = False,
        ignore_index: bool = False,
    ) -> DataFrame | None

参数说明

  • subset:列标签,可选, 默认使用所有列,只考虑某些列来识别重复项传入列标签或者列标签的序列

  • keep:{‘first’,‘last’,False},默认’first’

    • first:删除第一次出现的重复项。

    • last:删除重复项,除了最后一次出现。

    • false:删除所有重复项

  • inplace:是否替换原数据,默认是False,生成新的对象,可以复制到新的DataFrame

  • ignore_index:bool,默认为False,如果为True,则生成的轴将标记为0,1,…,n-1。

(1)判断所有列

import numpy as np
import pandas as pd

df_obj = pd.DataFrame({'data1': ['a', 'a', 'a', 'b', 'b', 'b', 'c', 'c'],
                       'data2': [1, 1, 2, 3, 4, 5, 5, 5]})
print(df_obj)

print(df_obj.drop_duplicates())

运行结果:
在这里插入图片描述

(2) 按照指定列进行判断

print(df_obj.drop_duplicates('data2'))

运行结果:
在这里插入图片描述

3. isnull()

判断序列元素是否为缺失(返回与序列长度一样的bool值)

示例代码:

import numpy as np
import pandas as pd

df_obj = pd.DataFrame({'data1': ['a', 'a', 'a', 'b', 'b', 'b', 'c', 'c'],
                       'data2': [1, 1, 2, 3, 4, 5, 5, 5],
                       'data3':np.NaN})
print(df_obj)

print(df_obj.isnull())

运行结果:
在这里插入图片描述

4. notnull()

判断序列元素是否不为缺失(返回与序列长度一样的bool值)

print(df_obj.notnull())

运行结果:
在这里插入图片描述

5. dropna()

删除缺失值

import numpy as np
import pandas as pd

df_obj = pd.DataFrame({'data1': ['a', 'a', 'a', 'b', 'b', 'b', 'c', 'c'],
                       'data2': [1, 1, 2, 3, np.NaN, 5, 5, np.NaN]})
print(df_obj)

print(df_obj.dropna())

运行结果:
在这里插入图片描述

6. fillna()

缺失值填充

import numpy as np
import pandas as pd

df_obj = pd.DataFrame({'data1': ['a', 'a', 'a', 'b', 'b', 'b', 'c', 'c'],
                       'data2': [1, 1, 2, 3, np.NaN, 5, 5, np.NaN]})
print(df_obj)

print(df_obj.fillna('100'))

运行结果:
在这里插入图片描述

7. ffill()

前向后填充缺失值,用缺失值的前一个元素填充

import numpy as np
import pandas as pd

df_obj = pd.DataFrame({'data1': ['a', 'a', 'a', 'b', 'b', 'b', 'c', 'c'],
                       'data2': [1, 1, 2, 3, np.NaN, 5, 5, np.NaN]})
print(df_obj)

print(df_obj.ffill())

在这里插入图片描述

8. bfill()

后向填充缺失值,用缺失值的后一个元素填充

import numpy as np
import pandas as pd

df_obj = pd.DataFrame({'data1': ['a', 'a', 'a', 'b', 'b', 'b', 'c', 'c'],
                       'data2': [1, 1, 2, 3, np.NaN, 5, 5, np.NaN]})
print(df_obj)

print(df_obj.bfill())

在这里插入图片描述

9. replace()

替换元素,可以使用正则表达式

语法格式:

replace(
        self,
        to_replace=None,
        value=None,
        inplace: bool = False,
        limit=None,
        regex: bool = False,
        method: str = "pad",
    )

参数说明

  • to_replace: 需要替换的值

  • value:替换后的值

  • inplace: 是否在原数据表上更改,默认 inplace=False

  • limit:向前或向后填充的最大尺寸间隙,用于填充缺失值

  • regex: 是否模糊查询,用于正则表达式查找,默认 regex=False

  • method: 填充方式,用于填充缺失值

    • pad: 向前填充
    • ffill: 向前填充
    • bfill: 向后填充

(1) 单个值替换

import numpy as np
import pandas as pd

df_obj = pd.DataFrame({'data1': ['a', 'a', 'a', 'b', 'b', 'b', 'c', 'c'],
                       'data2': [1, 1, 2, 3, np.NaN, 5, 5, np.NaN]})
print(df_obj)

print(df_obj.replace('a',"A"))

运行结果:
在这里插入图片描述

(2) 多个值替换一个值

print(df_obj.replace([1, 2], -100))

运行结果:
在这里插入图片描述
(3)多个值替换多个值

print(df_obj.replace([1, 2], [-100, -200]))

运行结果:
在这里插入图片描述
(4)使用正则表达式:

import numpy as np
import pandas as pd

df_obj = pd.DataFrame({'data1': ['ab', 'abc', 'aaa', 'b', 'b', 'b', 'c', 'c'],
                       'data2': [1, 1, 2, 3, np.NaN, 5, 5, np.NaN]})
print(df_obj)
# 替换a开头的
print(df_obj.replace('a.?',"A",regex=True))

运行结果:
在这里插入图片描述

10. str.replace()

替换元素,可使用正则表达式

import numpy as np
import pandas as pd

s = pd.Series(['foo', 'fuz', np.nan])
print(s)
print(s.str.replace('f.', 'ba', regex=True))

运行结果:
在这里插入图片描述

11. str.split.str()

以指定字符切割列

import numpy as np
import pandas as pd

data = {'洗漱用品':['毛巾|牙刷|牙膏']}

df = pd.DataFrame(data)
print(df)
print(df['洗漱用品'].str.split('|',expand=True))

运行结果:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/81527.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在PostgreSQL中通过dblink兼容Oracle数据库中的自治事务

1、数据库事务原子性的局限与自治事务 1.1、事务原子性概述 如下所示,如果一个事务中有A和B两个数据的插入操作,当A的SQL语句执行成功后,因为某种原因(如服务器断电等),导致B的SQL语句执行失败&#xff0…

微服务框架 SpringCloud微服务架构 微服务保护 32 隔离和降级 32.3 线程隔离【舱壁模式】

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 微服务保护 文章目录微服务框架微服务保护32 隔离和降级32.3 线程隔离【舱壁模式】32.3.1 线程隔离【舱壁模式】32.3.2 案例32.3.3 总结32 隔…

【BBuf的CUDA笔记】一,解析OneFlow Element-Wise 算子实现

0x0. 前言 由于CUDA水平太菜,所以一直没写过这方面的笔记。现在日常的工作中已经不能离开写CUDA代码,所以准备学习ZZK随缘做一做CUDA的笔记记录一下学习到的知识和技巧。这篇文章记录的是阅读OneFlow的Element-Wise系列CUDA算子实现方案学习到的技巧&am…

MySQL主从复制与读写分离

目录 前言 一、MySQL主从复制的理解 1、MySQL的复制类型 2、MySQL主从复制的工作流程 3、MySQL架构(一主多备) 3.1 一主多备 3.2 M-S-S 3.3 M-M/双主互备 (互为主从) 3.4 M-M-M 4、MySQL主从复制延迟原因 5、MySQL主从…

FL Studio2023最新版编曲音乐制作数字音频软件

FL Studio2023即“Fruity Loops Studio”,也就是众所熟知的水果软件, 全能音乐制作环境或数字音频工作站(DAW)。FL Studio可以编曲、剪辑、录音、混音,让你的计算机成为全功能录音室。 FL Studio2023是一个完整的软件音…

学术分享 | 清华大学 康重庆:电力系统碳计量技术与应用(Matlab代码实现)

💥💥💥💞💞💞欢迎来到本博客❤️❤️❤️💥💥💥​ 📋📋📋本文目录如下:⛳️⛳️⛳️ 目录 ​ 0 写在最前面 1 学术分享 | …

MATLB|改进遗传算法优化微电网调度(考虑环境)

💥💥💥💞💞💞欢迎来到本博客❤️❤️❤️💥💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑…

Redis 高可用之持久化

Redis 高可用之持久化Redis 高可用什么是高可用Redis的高可用技术Redis持久化持久化的功能Redis提供两种方式进行持久化:RDB持久化触发条件bgsave执行流程启动时加载AOF持久化(支持秒级写入)开启AOF执行流程启动时加载RDB和AOF的优缺点RDB持久…

CSC7261M

CSC7261M是一款内置高压MOS的高性能、多工作模式的PWM控制芯片,内置多种保护机制。当系统为空载和轻载时,芯片采用Burst和Green控制模式可有效地减少了空载和轻载时的损耗。当系统为中载和重载时,CSC7261M芯片采用CCM模式可有效提升电源系统的…

校招面试中常见的算法题整理【长文】

⭐️我叫恒心,一名喜欢书写博客的研究生在读生。 原创不易~转载麻烦注明出处,并告知作者,谢谢!!! 这是一篇近期会不断更新的博客欧~~~ 有什么问题的小伙伴 欢迎留言提问欧。 文章目录前言一、链表问题1 合并…

Anaconda安装详细教程

一、Anaconda下载 (1)方式一:Anaconda官网 不推荐使用官网下载: (1)官网下载速度非常慢,需要使用国内源下载 (2)官网下载的是最新版本,可能使用时会出现意料…

基于java+springboot+mybatis+vue+mysql的地方废物回收机构管理系统

项目介绍 地方废物回收机构管理系统能够通过互联网得到广泛的、全面的宣传,让尽可能多的用户了解和熟知地方废物回收机构管理系统的便捷高效,不仅为用户提供了服务,而且也推广了自己,让更多的用户了解自己。对于地方废物回收机构…

【 SQLite3移植到ARM Linux教程】

SQLite3移植到ARM Linux教程1 下载 SQLite3源码2 复制并解压源码包3 配置编译选项4 编译5 去除调试信息6 复制文件7 运行测试sqlite3SQLite 是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多…

MyBatis如何处理表关联

实体类 学生表 添加对应对象 - 教师 private Teacher teacher; 2. Mapper添加对应结果集映射 collection 一对多 学科表 对 学生表 1. 实体类 学科 添加对应集合 – 学生 private List<Student> stuList; 2. Mapper添加对应结果集映射 使用ResultType实现结果多表映…

[附源码]Python计算机毕业设计Django云南美食管理系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

Redis配置、优化以及相命令

目录 一、关系数据库和非关系型数据库 1、关系型数据库 2、非关系型数据库 二、关系型数据库和非关系型数据库区别 1、数据存储方式不同 1.1 关系型数据 1.2 非关系型数据库 2、扩展方式不同 2.1 SQL数据库 2.2 NoSQL数据库 3、对事务性的支持不同 3.1 SQL数据库 …

全网最详细的HTTP协议学习笔记

目录 一、HTTP简介 相关词语 HTTP请求过程 二、HTTP详解 1.在TCP/IP协议中的位置 2.Request(请求消息) 3.Response(响应消息) 4.HTTP状态码 5.HTTP请求方法 6.其他 三、练习自测 四、总结 五、重点&#xff1a;配套学习资料和视频教学 一、HTTP简介 全称&#…

[附源码]Python计算机毕业设计大学生兼职管理系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

[附源码]Python计算机毕业设计宠物短期寄养平台Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

R语言无监督学习:PCA主成分分析可视化

总览 在监督学习中&#xff0c;我们通常可以访问n个 观测值的p个 特征 集 &#xff0c;并 在相同观测值上测得的 Y。 无监督学习是一组没有相关的变量 Y的方法。在这里&#xff0c;我们重点介绍两种技术… 主成分分析&#xff1a;用于数据可视化或在其他监督学习方法之…