pandas 高级(二)

简介: 本文其实属于:Python的进阶之道【AIoT阶段一】的一部分内容,本篇把这部分内容单独截取出来,方便大家的观看,本文介绍 pandas 高级,读本文之前建议先修:pandas 入门,后续还会发出一篇 pandas 进阶供读者进行进一步的学习了解。

2.数据清洗

🚩所谓数据清洗,其实就是把重复的数据,或者是空数据,异常数据进行一些操作,比如替换,填充,删除等操作,关于异常值的定义需要根据实际情况去自行规定。

2.1 重复数据过滤

import numpy as np
import pandas as pd
df = pd.DataFrame(data = {'color':['red', 'blue', 'red', 'green', 'blue', None, 'red'],
                          'price':[10, 20, 10, 15, 20, 0, np.NaN]})
display(df)
# 重复数据过滤
df.duplicated()        # 判断是否存在重复数据
df.drop_duplicates()   # 删除重复数据

22.png

2.2 空数据过滤

None 和 NaN 都表示空数据,计算时没有区别

None 是 Python 的数据类型

NaN 是 Numpy 的数据类型

import numpy as np
import pandas as pd
df = pd.DataFrame(data = {'color':['red', 'blue', 'red', 'green', 'blue', None, 'red'],
                          'price':[10, 20, 10, 15, 20, 0, np.NaN]})
display(df)
# 空数据处理
# 比如 df 中的 color:None,price:NaN 就是空数据
display(df.isnull()) # 判断是否存在空数据,存在返回True,否则返回False
display(df.dropna())   # 删除空数据
df.fillna(1024)  # 填充空数据:空数据全变为1024

23.png

2.3 指定行或者列进行删除

del df['color'] # 直接删除某列
df

image.png

# drop 删除,原数据无变化
# 删除指定列
display(df.drop(labels = ['price'], axis = 1))
display(df)
# 删除指定行
display(df.drop(labels = [0, 1, 3], axis = 0))
display(df)

24.png

当然,我们也可以设置使得在原数据上直接进行修改:

# inplace 替换:删除原来数据并替换给原数据
# 说白了就是删除数据的意思
df.drop(labels = [0, 1, 3], axis = 0, inplace = True)
df

image.png

2.4 异常值

🚩对于一个正态分布的数据,我们认定 > 3 σ >3\sigma>3σ 就是异常值,σ \sigmaσ表示标准差

# 正态分布数据
df = pd.DataFrame(data = np.random.randn(10000, 3))
cnt = df.abs() > 3 * df.std()   # df.std() 就是标准差
# 取出第一列是异常的数据
cnt_0 = cnt[0]
display(df[cnt_0])
# 获取每一列是异常的数据
cnt_1 = cnt[1]
cnt_2 = cnt[2]
cnt = cnt_0 | cnt_1 | cnt_2
df[cnt]

25.png

还有一种比较简单的方式取出异常值:

cnt = df.abs() > 3 * df.std()
# axis = 1 计算每一行,只要一行中有一个 True,返回 True
# True 就表示的是异常值
cnt_ = cnt.any(axis = 1)
df[cnt_]

image.png


目录
相关文章
|
7月前
|
索引 Python
Pandas 高级教程——高级时间序列分析
Pandas 高级教程——高级时间序列分析
350 4
|
7月前
|
数据可视化 数据挖掘 数据处理
进阶 pandas DataFrame:挖掘高级数据处理技巧
【5月更文挑战第19天】本文介绍了Pandas DataFrame的高级使用技巧,包括数据重塑(如`pivot`和`melt`)、字符串处理(如提取和替换)、日期时间处理(如解析和时间序列操作)、合并与连接(如`merge`和`concat`),以及使用`apply()`应用自定义函数。这些技巧能提升数据处理效率,适用于复杂数据分析任务。推荐进一步学习和探索Pandas的高级功能。
|
7月前
|
数据挖掘 数据处理 Python
【Python DataFrame 专栏】深入探索 pandas DataFrame:高级数据处理技巧
【5月更文挑战第19天】在 Python 数据分析中,pandas DataFrame 是核心工具。本文介绍了几个高级技巧:1) 横向合并 DataFrame;2) 数据分组与聚合;3) 处理缺失值;4) 数据重塑;5) 条件筛选;6) 使用函数处理数据。掌握这些技巧能提升数据处理效率和分析深度,助你更好地发掘数据价值。
71 1
【Python DataFrame 专栏】深入探索 pandas DataFrame:高级数据处理技巧
|
5月前
|
数据采集 数据挖掘 数据处理
Python数据分析加速器:深度挖掘Pandas与NumPy的高级功能
【7月更文挑战第14天】Python的Pandas和NumPy库是数据分析的核心工具。Pandas以其高效的数据处理能力,如分组操作和自定义函数应用,简化了数据清洗和转换。NumPy则以其多维数组和广播机制实现快速数值计算。两者协同工作,如在DataFrame与NumPy数组间转换进行预处理,提升了数据分析的效率和精度。掌握这两者的高级功能是提升数据科学技能的关键。**
57 0
|
5月前
|
数据采集 机器学习/深度学习 数据处理
数据科学家的秘密武器:Pandas与NumPy高级应用实战指南
【7月更文挑战第14天】Pandas与NumPy在数据科学中扮演关键角色。Pandas的DataFrame和Series提供高效数据处理,如数据清洗、转换,而NumPy则以ndarray为基础进行数值计算和矩阵操作。两者结合,从数据预处理到数值分析,形成强大工具组合。示例展示了填充缺失值、类型转换、矩阵乘法、标准化等操作,体现其在实际项目中的协同效用。掌握这两者,能提升数据科学家的效能和分析深度。**
52 0
|
5月前
|
数据处理 Python
数据科学进阶之路:Pandas与NumPy高级操作详解与实战演练
【7月更文挑战第13天】探索数据科学:Pandas与NumPy提升效率的高级技巧** - Pandas的`query`, `loc`和`groupby`用于复杂筛选和分组聚合,例如筛选2023年销售额超1000的记录并按类别计总销售额。 - NumPy的广播和向量化运算加速大规模数据处理,如快速计算两个大数组的元素级乘积。 - Pandas DataFrame基于NumPy,二者协同加速数据处理,如将DataFrame列转换为NumPy数组进行标准化再回写,避免链式赋值。 掌握这些高级操作,实现数据科学项目的效率飞跃。
68 0
|
6月前
|
数据采集 存储 数据可视化
Pandas高级教程:数据清洗、转换与分析
Pandas是Python的数据分析库,提供Series和DataFrame数据结构及数据分析工具,便于数据清洗、转换和分析。本教程涵盖Pandas在数据清洗(如缺失值、重复值和异常值处理)、转换(数据类型转换和重塑)和分析(如描述性统计、分组聚合和可视化)的应用。通过学习Pandas,用户能更高效地处理和理解数据,为数据分析任务打下基础。
768 3
|
5月前
|
数据挖掘 数据处理 决策智能
Python 数据分析工具箱:深挖 Pandas 与 NumPy 高级功能,驱动智能决策
【7月更文挑战第12天】Python的Pandas和NumPy是数据分析的基石。Pandas提供灵活的数据结构如DataFrame,用于高效处理关系型数据,而NumPy则以多维数组和科学计算功能著称。两者结合,支持数据合并(如`pd.merge`)、时间序列分析(`pd.to_datetime`)和高级数组运算。通过掌握它们的高级特性,能提升数据分析效率,应用于各领域,如金融风险评估、市场分析和医疗预测,助力数据驱动的决策。学习和熟练运用Pandas与NumPy是成为出色数据分析师的关键。
64 0
|
7月前
|
数据采集 数据挖掘 数据处理
《Pandas 简易速速上手小册》第8章:Pandas 高级数据分析技巧(2024 最新版)
《Pandas 简易速速上手小册》第8章:Pandas 高级数据分析技巧(2024 最新版)
83 1
|
7月前
|
数据挖掘 数据处理 索引
Python 应知应会的Pandas高级操作
Python 应知应会的Pandas高级操作
103 0
下一篇
DataWorks