Pandas异常值处理小结

 更新时间:2024年07月24日 11:32:39   作者:起名字真难.  
在Pandas中,异常值是数据中那些与其他数据点显著不同的点本文主要介绍了Pandas异常值处理小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

在Pandas中,异常值(或称为离群值)是数据中那些与其他数据点显著不同的点。这些异常值可能是由于错误、异常事件或数据的自然变异产生的。处理异常值的方法取决于数据的性质、分析的目的以及异常值对分析的影响。

在异常值处理的时候可能会用到的函数

①、describe():查看每一列的描述性统计量

②、df.info():查看数据信息

③、df.std():可以求得DataFrame对象每一列的标准差

④、df.drop():删除特定索引

⑤、unique():唯一,去重

⑥、query():按条件查询

⑦、df.sort_values():根据值排序

⑧、sort_index():根据索引排序...

1、describe()

   describe() 函数在 Pandas 中是一个用于生成 DataFrame 或 Series 中数值列统计摘要的便捷方法。它提供了丰富的描述性统计信息,帮助用户快速了解数据的分布情况。可以利用.T转置。

默认参数下的输出

默认情况下,describe() 函数会计算以下统计量(对于数值型):

  • count:非缺失值的数量。
  • mean:均值。
  • std:标准差。
  • min:最小值。
  • 25%:第一四分位数(或称为25%分位数)。
  • 50%:第二四分位数(中位数)。
  • 75%:第三四分位数。
  • max:最大值。
import pandas as pd
data = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
a = pd.DataFrame(data, index=['a', 'b', 'c'])
print(a.describe())

2、std

   DataFrame.std() 方法可以用来计算DataFrame对象每一列的标准差(standard deviation)。默认情况下,这个方法会忽略NaN值,只计算非空值的标准差。

import pandas as pd  
  
# 创建一个简单的DataFrame  
data = {  
    'A': [1, 2, 3, 4, 5],  
    'B': [10, 20, 30, 20, 50],  
    'C': [pd.np.nan, 2, 4, 4, 6]  # 包含NaN值  
}  
df = pd.DataFrame(data)  
  
# 计算每一列的标准差  
std_values = df.std()  
  
print(std_values)

3、drop

在Pandas中,DataFrame.drop() 方法用于删除行或列。这个方法非常有用,特别是当你需要清理数据或去除某些不需要的行/列时。

方法签名

DataFrame.drop(labels=None, axis=0, index=None, columns=None, inplace=False, level=None, errors='raise')

参数说明

  • labels:要删除的行或列的标签。
  • axis:指定删除行(axis=0 或 axis='index')还是列(axis=1 或 axis='columns')。
  • index 和 columns:这些是 labels 的别名,用于分别指定要删除的行和列。但是,通常建议直接使用 labels 和 axis
  • inplace:如果为True,则在原始DataFrame上进行修改并返回None。否则,返回一个新的DataFrame。
  • level:对于具有多级索引的DataFrame,指定要删除的级别。
  • errors:指定如何处理错误。默认为 'raise',表示出现错误时抛出异常。如果设置为 'ignore',则忽略错误。
import pandas as pd
data = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
a = pd.DataFrame(data, index=['a', 'b', 'c'])
print(a.drop('a'))  # 默认的情况下删除一行
print(a.drop(0, axis=1)) # 删除一列

4、unique()

在Pandas中,unique() 是一个常用的方法,它主要用于获取Series对象列的唯一值(unique values)。这个方法返回一个NumPy数组,其中包含Series的唯一值。DataFrame没有unidue。

import pandas as pd
data = [[4, 2, 3], [4, 5, 6], [7, 8, 9]]
a = pd.DataFrame(data, index=['a', 'b', 'c'])
print(a[0].unique())

5、query()

在Pandas库中,query() 方法是DataFrame对象的一个功能强大的工具,用于根据特定的条件筛选和查询数据。以下是关于 query() 方法的详细解释:

1. 功能概述

  • query() 方法允许用户根据逻辑表达式(可以是单个条件或组合条件)来筛选DataFrame中的数据。
  • 它返回一个新的DataFrame,其中仅包含满足给定条件的数据行。
  • 与 loc 和 iloc 相比,query() 方法提供了更直观、类似于SQL的语法,使得筛选条件更易读、易写。

2. 语法结构

DataFrame.query(expr, inplace=False, **kwargs)

  • expr: 表示查询条件的字符串。
  • inplace: 默认为False,表示不修改原始DataFrame,而是返回一个新的DataFrame。如果设置为True,则直接在原始DataFrame上进行修改。
  • **kwargs: 其他关键字参数,通常与 eval() 方法的参数相关。
import pandas as pd
data = [[4, 2, 3], [4, 5, 6], [7, 8, 9]]
a = pd.DataFrame(data, index=['a', 'b', 'c'], columns=list("ABC"))
print(a.query(' A== 4'))  # 把A == 4筛选出来
n = 4
print(a.query('A == @n'))  # 这里写一个@ 在能说明n为标量
# 这里的“ ” 里面可以有and or in ... 

3. 注意事项

  • query() 方法只能用于筛选行,不能用于筛选列。
  • 查询条件字符串中的列名必须与DataFrame中的列名完全匹配(包括大小写)。
  • 在使用变量时,请确保变量在调用 query() 方法之前已经被定义并赋值。
  • 当使用复杂的查询条件时,建议使用括号来明确运算符的优先级,以避免潜在的错误。

6、df.sort_values()

在Pandas库中,DataFrame.sort_values() 方法是用于对DataFrame中的数据按照一个或多个列的值进行排序的。这个方法非常有用,特别是当你需要按照某个或某些列的值对数据进行排序以便进一步分析或可视化时。

方法签名

DataFrame.sort_values(by, axis=0, ascending=True, inplace=False, kind='quicksort', na_position='last', ignore_index=False, key=None)

参数说明

  • by: 需要依据其值进行排序的列名或列名列表。
  • axis: 排序的轴。0 或 'index' 表示沿着行进行排序(即按列的值排序),1 或 'columns' 表示沿着列进行排序(DataFrame中不支持按列排序,因此这个参数通常设置为0或'index')。
  • ascending: 排序方向,默认为True(升序),如果为False则为降序
  • inplace: 是否在原地进行修改,默认为False(返回新的DataFrame),如果为True则直接在原DataFrame上进行修改。
  • kind: 排序算法的类型,默认为'quicksort'。对于大型数据集,'mergesort'和'heapsort'可能更为合适。
  • na_position: 缺失值(NaN)的位置,默认为'last'(在末尾),如果为'first'则在开头。
  • ignore_index: 重新设置结果的索引,默认为False。如果为True,则结果索引将会是整数型的默认索引。
  • key: 应用于每一列元素在进行比较之前的函数。
import pandas as pd
data = [[9, 2, 3], [4, 5, 6], [1, 8, 9]]
a = pd.DataFrame(data, index=['a', 'b', 'c'], columns=list("ABC"))
print(a.sort_values('A'))  # 默认的是升序
print(a.sort_values('A', ascending=False)) # 通过修改ascending=False 变为降序
print(a.sort_values('a', axis=1))

7、sort_index()

sort_index() 是 Pandas 库中 DataFrame 和 Series 对象的一个方法,用于根据索引值对数据进行排序。以下是关于 sort_index() 方法的详细解释:

方法功能

  • sort_index() 主要用于对 DataFrame 或 Series 对象进行索引排序。
  • 默认情况下,它会根据索引的升序(ascending=True)进行排.

方法签名

DataFrame.sort_index(*, axis=0, level=None, ascending=True, inplace=False, kind='quicksort', na_position='last', sort_remaining=True, ignore_index=False, key=None)

参数说明

axis

  • 默认为 0,表示按行索引(index)进行排序。
  • 如果设置为 1 或 'columns',则按列索引(columns)进行排序(但实际应用中按列索引排序的情况较少)。

level

  • 当索引是多重索引时,可以指定按哪一个或多个级别进行排序。
  • 默认为 None,表示按多重索引的第一个级别排序。

ascending

  • 排序顺序,默认为 True,表示升序排序。
  • 如果设置为 False,则进行降序排序。

inplace

  • 是否直接在原对象上进行修改,默认为 False。
  • 如果设置为 True,则直接在原 DataFrame 或 Series 上进行排序,不返回新的对象。

kind

  • 排序算法的种类,默认为 'quicksort'。
  • 对于大型数据集,可以选择其他算法,如 'mergesort'。

na_position

  • 缺失值(NaN)的位置,默认为 'last',表示将 NaN 值放在最后。
  • 如果设置为 'first',则将 NaN 值放在前面。

sort_remaining

  • 当对多重索引的特定级别进行排序时,此参数控制是否对非指定级别进行排序。
  • 默认为 True。

ignore_index

  • 当对多重索引进行排序时,此参数控制是否重置排序后的索引。
  • 默认为 False,即保留多重索引。

key

  • 应用于索引值进行排序前的函数。
import pandas as pd
data = [[9, 2, 3], [4, 5, 6], [1, 8, 9]]
a = pd.DataFrame(data, index=['d', 'b', 'c'], columns=list("DBC"))
print(a.sort_index()) # 按照行索引排序
print(a.sort_index(axis=1))  # 按照列索引进行排序
li = [1, 2, 3]
b = pd.Series(li, index=['c', 'b', 'a'])
print(b.sort_index())

到此这篇关于Pandas异常值处理小结的文章就介绍到这了,更多相关Pandas异常值内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • 使用scrapy实现爬网站例子和实现网络爬虫(蜘蛛)的步骤

    使用scrapy实现爬网站例子和实现网络爬虫(蜘蛛)的步骤

    本文分二个示例,第一个是个简单的爬网站的小例子,第二个例子实现目是从一个网站的列表页抓取文章列表,然后存入数据库中,数据库包括文章标题、链接、时间,大家参考使用吧
    2014-01-01
  • Python使用OpenCV转换图像大小

    Python使用OpenCV转换图像大小

    在Python中,使用OpenCV库来转换图像大小是一个常见的操作,它可以帮助你调整图像到特定的尺寸,以适应不同的应用场景,比如图像预处理、模型输入等,下面是一个详细的代码示例,展示了如何使用OpenCV来转换图像的大小,需要的朋友可以参考下
    2024-09-09
  • Python异常处理:try、except、else、finally的全面解析

    Python异常处理:try、except、else、finally的全面解析

    在Python中,异常是程序在运行时发生的错误,当Python解释器遇到一个它不能处理的错误时,它会抛出一个异常,异常处理的主要目的是在程序遇到错误时,提供一种方法来处理这些错误,而不是简单地让程序崩溃,本文介绍了Python异常处理:try、except、else、finally的全面解析
    2024-07-07
  • 深度解析Python魔法函数中__getattr__与__getattribute__的核心奥义

    深度解析Python魔法函数中__getattr__与__getattribute__的核心奥义

    Python作为一门极具灵活性的动态类型语言,其惊艳的动态特性并非凭空而来,魔法函数正是支撑这一特性的底层灵魂,下面小编就和大家详细介绍一下_getattr__与__getattribute__的调用机制,核心区别与实战应用吧
    2026-03-03
  • python3 打印输出字典中特定的某个key的方法示例

    python3 打印输出字典中特定的某个key的方法示例

    这篇文章主要介绍了python3 打印输出字典中特定的某个key的方法,涉及Python字典的遍历、判断、输出等相关操作技巧,需要的朋友可以参考下
    2019-07-07
  • spark dataframe 将一列展开,把该列所有值都变成新列的方法

    spark dataframe 将一列展开,把该列所有值都变成新列的方法

    今天小编就为大家分享一篇spark dataframe 将一列展开,把该列所有值都变成新列的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • Python代码覆盖率统计工具coverage.py用法详解

    Python代码覆盖率统计工具coverage.py用法详解

    这篇文章主要介绍了Python代码覆盖率统计工具coverage.py用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • python实现简单五子棋游戏

    python实现简单五子棋游戏

    这篇文章主要为大家详细介绍了python实现简单五子棋游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-06-06
  • pytorch 使用半精度模型部署的操作

    pytorch 使用半精度模型部署的操作

    这篇文章主要介绍了pytorch 使用半精度模型部署的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • Python标准库inspect的具体使用方法

    Python标准库inspect的具体使用方法

    本篇文章主要介绍了Python标准库inspect的具体使用方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12

最新评论