pandas 进阶(二)

简介: 本文其实属于:Python的进阶之道【AIoT阶段一】的一部分内容,本篇把这部分内容单独截取出来,方便大家的观看,本文介绍 pandas 高级,读本文之前建议先修:pandas 入门,pandas 高级

2.数学和统计方法

🚩pandas对象拥有一组常用的数学和统计方法。它们属于汇总统计,对Series汇总计算获取mean、max值或者对DataFrame行、列汇总计算返回一个Series。

2.1 简单统计指标

创建数据:

import numpy as np
import pandas as pd
df = pd.DataFrame(data = np.random.randint(0, 100,size = (20, 3)),
                  index = list('ABCDEFHIJKLMNOPQRSTU'),
                  columns = ['Python', 'Tensorflow', 'Keras'])
df

111111.png

我们现在来把一部分数据设置为空:

def convert(x):
    if x > 80:
        return np.NaN
    else:
        return x
df['Python'] = df['Python'].map(convert)
df['Tensorflow'] = df['Tensorflow'].apply(convert)
df['Keras'] = df['Keras'].transform(convert)
df

1.png

现在我们想知道到底有多少个空数据,我们可以自己去数,但这显然是低效的方法,使用 count() 函数可以直接去统计有多少个非空数据:

df.count()  # 统计非空数据的个数

image.png

我们重新来构造数据:

import numpy as np
import pandas as pd
df = pd.DataFrame(data = np.random.randint(0, 100,size = (20, 3)),
                  index = list('ABCDEFHIJKLMNOPQRSTU'),
                  columns = ['Python', 'Tensorflow', 'Keras'])
df

2.png

使用 median() 可以计算数据的中位数:

df.median()  # 中位数

image.png

display(df.quantile(q = 0.5)) # 返回位于数据 50% 位置的数
display(df.quantile(q = 0.8)) # 返回位于数据 80% 位置的数

image.png

我们也可以使用如下的方法实现同样的效果:

df.quantile(q = [0.5, 0.8])

image.png

2.2 索引标签、位置获取

display(df['Python'].argmin()) # 计算最小值位置
display(df['Keras'].argmax()) # 最大值位置

image.png

display(df.idxmax()) # 最大值索引标签
display(df.idxmin()) # 最小值索引标签

image.png

索引就是自然数,标签就是我们初始设置的 ABCD…,索引和标签是一一对应的,如 0 对应的就是 A

2.3 更多统计指标

创建数据:

import numpy as np
import pandas as pd
df = pd.DataFrame(data = np.random.randint(0, 5,size = (20, 3)),
                  index = list('ABCDEFHIJKLMNOPQRSTU'),
                  columns = ['Python', 'Tensorflow', 'Keras'])
df

3.png

使用 value_counts() 可以统计元素出现的次数:

# 统计元素出现次数
df['Python'].value_counts()

image.png

使用 unique() 可以实现去重:

# 去重
df['Python'].unique()

image.png

调用 cumsum() 实现累加,调用 cumprod() 实现累乘:

# 累加
display(df.cumsum())
# 累乘
display(df.cumprod())

4.png

cummin() 的作用是累计最小值,即碰到更小的数后,该数往后所有数都变成这个更小的数,cummax() 的作用是累计最大值,即碰到更大的数后,该数往后所有的数都变成这个更大的数:

# 累计最小值
display(df.cummin())
# 累计最大值
display(df.cummax())

5.png

计算标准差调用 std(),计算方差调用 var()

# 计算标准差
display(df.std())
# 计算方差
display(df.var())

image.png

计算差分使用 diff(),差分就是这一行减上一行的结果,计算百分比的变化使用 pct_change():

# 计算差分
# 差分:和上一行相减
display(df.diff())
# 计算百分比变化
display(df.pct_change())

6.png

2.4 高级统计指标

我们使用 cov() 和 corr() 用来分别计算协方差和相关性系数:

协方差:image.png

相关性系数:image.png

# 属性的协方差
display(df.cov())
# Python和Keras的协方差
display(df['Python'].cov(df['Keras'])) 

image.png

# 所有属性相关性系数
display(df.corr())
# 单一属性相关性系数
display(df.corrwith(df['Tensorflow']))

image.png

目录
相关文章
|
8月前
|
数据可视化 数据挖掘 数据处理
进阶 pandas DataFrame:挖掘高级数据处理技巧
【5月更文挑战第19天】本文介绍了Pandas DataFrame的高级使用技巧,包括数据重塑(如`pivot`和`melt`)、字符串处理(如提取和替换)、日期时间处理(如解析和时间序列操作)、合并与连接(如`merge`和`concat`),以及使用`apply()`应用自定义函数。这些技巧能提升数据处理效率,适用于复杂数据分析任务。推荐进一步学习和探索Pandas的高级功能。
|
6月前
|
数据处理 Python
数据科学进阶之路:Pandas与NumPy高级操作详解与实战演练
【7月更文挑战第13天】探索数据科学:Pandas与NumPy提升效率的高级技巧** - Pandas的`query`, `loc`和`groupby`用于复杂筛选和分组聚合,例如筛选2023年销售额超1000的记录并按类别计总销售额。 - NumPy的广播和向量化运算加速大规模数据处理,如快速计算两个大数组的元素级乘积。 - Pandas DataFrame基于NumPy,二者协同加速数据处理,如将DataFrame列转换为NumPy数组进行标准化再回写,避免链式赋值。 掌握这些高级操作,实现数据科学项目的效率飞跃。
71 0
|
SQL 数据可视化 数据挖掘
Python 数据分析(四):Pandas 进阶
Python 数据分析(四):Pandas 进阶
97 0
Python 数据分析(四):Pandas 进阶
|
8月前
|
Python
Pandas进阶--map映射,分组聚合和透视pivot_table详解
Pandas进阶--map映射,分组聚合和透视pivot_table详解
164 0
|
8月前
|
机器学习/深度学习 数据可视化 数据处理
Pandas进阶学习:探索更多高级特性与技巧
【4月更文挑战第16天】本文深入探讨Pandas的进阶特性,包括向量化操作、apply方法、数据重塑、布尔索引、多重索引、性能优化和库集成。通过学习,可以提升数据处理效率,如使用布尔条件筛选、CategoricalDtype优化性能、分块处理大数据及与NumPy、Matplotlib、Seaborn和scikit-learn集成。掌握这些技巧能助你更好地挖掘数据价值。
|
数据挖掘 数据处理 Python
Pandas进阶:处理缺失数据和数据聚合
在本篇文章中,我们将深入探讨Pandas库中两个重要的数据处理功能:处理缺失数据和数据聚合。
|
数据挖掘 Java 索引
数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解)—Pandas—pandas进阶(十七)
你好,感谢你能点进来本篇博客,请不要着急退出,相信我,如果你有一定的 Python 基础,想要学习 Python数据分析的三大库:numpy,pandas,matplotlib;这篇文章不会让你失望,本篇博客是 【AIoT阶段一(下)】 的内容:Python数据分析,
313 0
数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解)—Pandas—pandas进阶(十七)
|
存储 SQL 数据挖掘
【python进阶系列之pandas】数据处理的大佬 pandas之数据结构
这里是三岁,速学了pandas,怕自己不会用整理了一下资料,有问题的地方或者不对的希望大家多多指出,批评指正!!! 由于pandas的内容过多我们就把经常使用的进行解析,其他的我们后续逐步添加
354 0
|
数据挖掘 索引 Python
数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解)—Pandas—pandas进阶(十三)
你好,感谢你能点进来本篇博客,请不要着急退出,相信我,如果你有一定的 Python 基础,想要学习 Python数据分析的三大库:numpy,pandas,matplotlib;这篇文章不会让你失望,本篇博客是 【AIoT阶段一(下)】 的内容:Python数据分析,
145 0
数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解)—Pandas—pandas进阶(十三)
|
数据挖掘 索引 Python
数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解)—Pandas—pandas进阶(十四)
你好,感谢你能点进来本篇博客,请不要着急退出,相信我,如果你有一定的 Python 基础,想要学习 Python数据分析的三大库:numpy,pandas,matplotlib;这篇文章不会让你失望,本篇博客是 【AIoT阶段一(下)】 的内容:Python数据分析,
156 0
数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解)—Pandas—pandas进阶(十四)