我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Pandas数据清洗函数总结

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Pandas数据清洗函数总结

一、drop():删除指定行列

drop()函数用于删除指定行,指定列,同时可以删除多行多列

语法格式

DataFrame.drop(
        self,
        labels=None,
        axis: Axis = 0,
        index=None,
        columns=None,
        level: Level | None = None,
        inplace: bool = False,
        errors: str = "raise",
    )

参数说明

  • labels:要删除的行列的名字,接收列表参数,列表内有多个参数时表示删除多行或者多列
  • axis:要删除的轴,与labels参数配合使用。默认为0,指删除行;axis=1,删除列
  • index:直接指定要删除的行
  • columns:直接指定要删除的列
  • inplace:是否直接在原数据上进行删除操作,默认为False(删除操作不改变原数据),而是返回一个执行删除操作后的新dataframe;inplace=True,直接在原数据上修改。

 1. 删除指定行

当 axis=0 时,删除指定行

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]},index=list('abcdefgh'))
print(df_obj)
# 删除第一行
df_obj.drop(labels='a', axis=0, inplace=True)
print(df_obj)

运行结果:

在这里插入图片描述

2. 删除指定列

当 axis=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]}, index=list('abcdefgh'))
print(df_obj)
# 删除data2 
df_obj.drop(labels='data2', axis=1, inplace=True)
print(df_obj)

运行结果:

在这里插入图片描述

二、del():删除指定列

del()函数与drop()函数相比就没有那么灵活了,此操作会对原数据df进行删除,且一次只能删除一列。

语法格式

del df[‘列名']

案例:

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]}, index=list('abcdefgh'))
print(df_obj)
# 删除data1
del df_obj['data1']
print(df_obj)

运行结果:

在这里插入图片描述

三、isnull():判断是否为缺失

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

1. 判断是否为缺失

示例代码:

import numpy as np
import pandas as pd

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

运行结果:

在这里插入图片描述

2. 判断哪些列存在缺失

isnull().any()会判断哪些”列”存在缺失值,数据清洗中经常用的小技巧

print(df_obj.isnull().any())

运行结果:

在这里插入图片描述

3. 统计缺失个数

isnull().sum()统计每一列的缺失个数

print(df_obj.isnull().sum())

运行结果:

在这里插入图片描述

四、notnull():判断是否不为缺失

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

print(df_obj.notnull())

运行结果:

在这里插入图片描述

五、dropna():删除缺失值

dropna()函数可以删除缺失值

语法格式:

DataFrame.dropna(
        self,
        axis: Axis = 0,
        how: str = "any",
        thresh=None,
        subset=None,
        inplace: bool = False,
    )

参数说明

  • axis:移除行或列,默认为0,即行含有空值移除行
  • how:‘all’所有值为空移除,'any’默认值,包含空值移除
  • thresh:包含thresh个空值时移除
  • subset:axis轴上,指定需要处理的标签名称列表
  • inplace:是否替换原始数据,默认False

1. 导入数据

import numpy as np
import pandas as pd

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

运行结果:

在这里插入图片描述

2. 删除含有NaN值的所有行

默认 axis=0

print(df_obj.dropna())

运行结果:

在这里插入图片描述

3. 删除含有NaN值的所有列

设置 axis=1 删除列

print(df_obj.dropna(axis=1))

运行结果:

在这里插入图片描述

4. 删除元素都是NaN值的行

设置参数 how="all",只有行一整行数据都是NaN的时候才会删除

print(df_obj.dropna(axis=0,how="all"))

运行结果:由于所有行都有至少有一个有效值,所有都没删除

在这里插入图片描述

5. 删除元素都是NaN值的列

print(df_obj.dropna(axis=1,how="all"))

运行结果:

在这里插入图片描述

6. 删除指定列中含有缺失的行

subset参数设置指定列

# 删除data1列有含有缺失的行
print(df_obj.dropna(subset=["data1"], axis=0))

运行结果:

在这里插入图片描述

六. fillna():缺失值填充

缺失值填充

语法格式

fillna(
        self,
        value: object | ArrayLike | None = None,
        method: FillnaOptions | None = None,
        axis: Axis | None = None,
        inplace: bool = False,
        limit=None,
        downcast=None,
    ) -> DataFrame | None

参数说明

  • value:用于填充的空值的值。
  • method: {‘backfill’, ‘bfill’, ‘pad’, ‘ffill’, None}, default None。定义了填充空值的方法, pad / ffill表示用前面行/列的值,填充当前行/列的空值, backfill / bfill表示用后面行/列的值,填充当前行/列的空值。
  • axis:选择轴,默认0(行),axis=1:列
  • inplace:是否替换原始数据
  • limit:int, default None。如果method被指定,对于连续的空值,这段连续区域,最多填充前 limit 个空值(如果存在多段连续区域,每段最多填充前 limit 个空值)。如果method未被指定, 在该axis下,最多填充前 limit 个空值(不论空值连续区间是否间断)
  • downcast:dict, default is None,字典中的项为,为类型向下转换规则。或者为字符串“infer”,此时会在合适的等价类型之间进行向下转换,比如float64 to int64 if possible。

1. 导入数据

import numpy as np
import pandas as pd

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

运行结果:

在这里插入图片描述

2. 默认全部填充

# 用0填补空值
print(df_obj.fillna(value=0))

运行结果:

在这里插入图片描述

3. 用前一行的值填补空值

设置参数 method='pad' 用前一行的值填补空值

# 用前一行填充
print(df_obj.fillna(method='pad',axis=0))

运行结果:

在这里插入图片描述

4. 用后一列的值填补空值

设置参数 method='backfill'

# 用后一列的值填补空值
print(df_obj.fillna(method='backfill', axis=1))

运行结果:

在这里插入图片描述

5. 设置填充个数

limit=数字,设置填充个数

# 用后一列的值填补空值,只填充两个
print(df_obj.fillna(method='backfill', axis=1, limit=2))

运行结果:

在这里插入图片描述

七、ffill():用前一个元素填充

前向后填充缺失值,用缺失值的前一个元素填充,与fillna()相比没有那么多可选性

语法格式

ffill(
        self: DataFrame,
        axis: None | Axis = None,
        inplace: bool = False,
        limit: None | int = None,
        downcast=None,
    ) -> DataFrame | None

案例说明:

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())

运行结果:

在这里插入图片描述

八、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())

在这里插入图片描述

九、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())

运行结果:

在这里插入图片描述

十、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'))

运行结果:

在这里插入图片描述

十一、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. 单个值替换

to_replace接收字符串

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. 多个值替换一个值

to_replace接收列表

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

运行结果:

在这里插入图片描述

3. 多个值替换多个值

to_replace接收列表,value接收列表

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

运行结果:

在这里插入图片描述

4. 使用正则表达式:

to_replace接收正则语法,设置 regex=True

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))

运行结果:

在这里插入图片描述

十二、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))

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

十三、str.split.str():分割元素

以指定字符切割列

import numpy as np
import pandas as pd

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

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

运行结果:

在这里插入图片描述

 到此这篇关于Pandas数据清洗函数总结的文章就介绍到这了,更多相关pandas数据清洗 内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Pandas数据清洗函数总结

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Pandas数据清洗函数总结

本文主要介绍了Pandas数据清洗函数总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-01-13

总结了Pandas实现数据清洗的7种方式

最近在做“对比excel,学习pandas系列”,今天给大家介绍一下excel和pandas实现数据清洗的种方式。

这20个Pandas函数,堪称“数据清洗”杀手!

Pandas 是基于NumPy 的一种工具,该工具是为解决数据分析任务而创建的。它提供了大量能使我们快速便捷地处理数据的函数和方法。本文介绍的这20个【被分成了15组】函数,绝对是数据处理杀手,用了你会爱不释手。

盘点66个Pandas函数,轻松搞定“数据清洗”!

今天我们重新盘点66个Pandas函数合集,包括数据预览、数值数据操作、文本数据操作、行/列操作等等,涉及“数据清洗”的方方面面。

如何使用 Pandas 进行数据清洗?如何保证数据清洗的效果?

考虑使用自动化工具和框架来简化数据清洗过程。例如,使用 Apache Airflow 或 Prefect 来自动化数据管道,确保数据清洗步骤的一致性和可重复性。

pandas数据清洗如何实现删除

这篇文章主要介绍“pandas数据清洗如何实现删除”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“pandas数据清洗如何实现删除”文章能帮助大家解决问题。准备工作(导入库、导入数据)import p
2023-07-02

pandas实现数据清洗有哪些方法

pandas实现数据清洗的方法有:1、缺失值处理;2、重复值处理;3、数据类型转换;4、异常值处理;5、数据规范化;6、数据筛选;7、数据聚合和分组;8、数据透视表等。详细介绍:1、缺失值处理,Pandas提供了多种处理缺失值的方法,对于缺
pandas实现数据清洗有哪些方法
2023-11-22

揭示pandas数据清洗的重要技巧!

pandas数据清洗技巧大揭秘!导语:在数据分析和机器学习中,数据清洗是一个非常重要的步骤,它涉及到对数据集进行预处理、转换和过滤,以便将数据整理为我们需要的格式和结构。而pandas是Python中最受欢迎和强大的数据分析库之一,它
揭示pandas数据清洗的重要技巧!
2024-01-24

SQL LOWER函数:数据清洗第一步

SQL中的LOWER函数是一种字符串处理函数,用于将输入的字符串转换为小写形式。在进行数据清洗时,将文本数据转换为统一的大小写格式是一个常见的需求,这有助于后续的数据处理和分析。使用LOWER函数进行数据清洗的步骤如下:确定需求:首先,你
SQL LOWER函数:数据清洗第一步
2024-10-24

八步学会使用Pandas进行数据清洗

你已成功使用Pandas清洗了第一个数据集。在处理复杂数据集时,你可能会遇到其他挑战。然而,本文介绍的基本技术将帮助你入门,并为开始数据分析做好准备。

三个Python常用的数据清洗处理方式总结

这篇文章主要为大家详细介绍了python数据处理过程中三个主要的数据清洗说明,分别是缺失值/空格/重复值的数据清洗,感兴趣的小伙伴可以了解一下
2022-12-20

文本数据清洗LOWER函数不可少

在处理文本数据时,确保所有文本都转换为小写是一个常见的预处理步骤。这是因为很多文本分析工具和方法在处理时不区分大小写,如果文本中包含大写字母,可能会导致分析结果的不准确。使用Python的lower()函数可以将文本中的所有大写字母转换为
文本数据清洗LOWER函数不可少
2024-10-24

高效的数据处理利器:pandas的数据清洗方法

数据清洗利器:pandas的高效处理方法引言:随着大数据时代的到来,数据的处理变得愈发重要,尤其是在数据科学和数据分析领域。在这些场景下,数据通常是杂乱无章的,需要进行清洗和整理,才能有效地进行分析和建模。而pandas作为Python中
高效的数据处理利器:pandas的数据清洗方法
2024-01-24

怎么在Python中使用Pandas进行数据清洗

怎么在Python中使用Pandas进行数据清洗?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。python的五大特点是什么python的五大特点:1.简单易学,
2023-06-14

Python怎么利用Pandas与NumPy进行数据清洗

本文小编为大家详细介绍“Python怎么利用Pandas与NumPy进行数据清洗”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python怎么利用Pandas与NumPy进行数据清洗”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一
2023-06-30

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录