数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解)—Pandas—pandas进阶(十七)

简介: 你好,感谢你能点进来本篇博客,请不要着急退出,相信我,如果你有一定的 Python 基础,想要学习 Python数据分析的三大库:numpy,pandas,matplotlib;这篇文章不会让你失望,本篇博客是 【AIoT阶段一(下)】 的内容:Python数据分析,

3.5 分组聚合

首先来创建数据:

import numpy as np
import pandas as pd
# 准备数据
df = pd.DataFrame(data = {'sex':np.random.randint(0, 2, size = 300), # 0男,1女
                          'class':np.random.randint(1, 9, size = 300),# 1~8八个班
                          'Python':np.random.randint(0, 151, size = 300),# Python成绩
                          'Keras':np.random.randint(0, 151, size =300),# Keras成绩
                          'Tensorflow':np.random.randint(0, 151, size = 300),
                          'Java':np.random.randint(0, 151,size = 300),
                          'C++':np.random.randint(0, 151, size = 300)})
df['sex'] = df['sex'].map({0:'男', 1:'女'})             # 将0,1映射成男女
df

11.png

3.5.1 分组

🚩根据性别分组并求出平均值,并把平均值保留一位小数:

df.groupby(by = 'sex').mean().round(1)

image.png

分组统计男女的数量:

df.groupby(by = 'sex').size()

image.png

根据性别和班级两个属性进行分组:

df.groupby(by = ['sex', 'class']).size()

image.png

获取每个班,男生女生 Python,Java最高分

df.groupby(by = ['sex', 'class'])[['Python', 'Java']].max()

12.png

我们通过多层索引的思想对上述代码稍作调整:

df.groupby(by = ['class', 'sex'])[['Python', 'Java']].max()

13.png

再用之前学过的数据重塑,又可以稍加变形:

df.groupby(by = ['class', 'sex'])[['Python', 'Java']].max().unstack()

image.png

3.5.2 分组聚合apply、transform

🚩apply 返回的是汇总后的情况,对于每一个分组大类都只返回一个结果:

df.groupby(by = ['class','sex'])[['Python','Keras']].apply(np.mean).round(1)

14.png

transform 是把所有的元素全部返回:

df.groupby(by = ['class','sex'])[['Python','Keras']].transform(np.mean).round(1)

image.png

3.5.3 分组聚合agg

🚩agg 比起 apply 和 transform 来说,功能更加的强大

# 按照班级和性别进行划分,统计 Tensorflow 和 Keras 这两门学科的最大值,最小值,个数
df.groupby(by = ['class','sex'])[['Tensorflow','Keras']].agg(
    [np.max, np.min, pd.Series.count])

15.png

# 分组后不同属性应用多种不同统计汇总
# 对 Python 计算最大值和最小值
# 对 Keras 计数和计算中位数
df.groupby(by = ['class','sex'])[['Python','Keras']].agg(
    {'Python':[('最大值',np.max),('最小值',np.min)],
     'Keras':[('计数',pd.Series.count),('中位数',np.median)]})

16.png

3.5.4 透视表pivot_table

🚩所谓透视,其实就是发现事物的一定规律

def count(x):
    return len(x)
df.pivot_table(values=['Python', 'Keras', 'Tensorflow'],# 要透视分组的值
               index=['class', 'sex'], # 分组透视指标,相当于之前的 by
               aggfunc={'Python':[('最大值', np.max)], # 聚合运算
                        'Keras':[('最小值', np.min),('中位数', np.median)],
                        'Tensorflow':[('最小值', np.min),('平均值', np.mean),('计数', count)]})

17.png




目录
相关文章
|
1月前
|
数据挖掘 C语言 索引
数据分析-pandas(三)
在这里,我们将讨论pandas数据结构中常见的许多基本功能
17 0
|
1月前
|
数据挖掘 索引 Python
数据分析-pandas(一)
pandas是Python的一个第三方开源库,是Python数据分析的必备高级工具,Pandas 这个名字来源于面板数据(Panel Data)与数据分析(data analysis)这两个名词的组合。在经济学中,Panel Data 是一个关于多维数据集的术语。Pandas 最初被应用于金融量化交易领域,现在它的应用领域更加广泛,涵盖了农业、工业、交通等许多行业。
34 0
|
2月前
|
存储 数据可视化 数据挖掘
Python在数据分析中的利器:Pandas库全面解析
【2月更文挑战第7天】 众所周知,Python作为一种简洁、易学且功能强大的编程语言,被广泛运用于数据科学和人工智能领域。而Pandas库作为Python中最受欢迎的数据处理库之一,在数据分析中扮演着举足轻重的角色。本文将全面解析Pandas库的基本功能、高级应用以及实际案例,带您深入了解这个在数据分析领域的利器。
47 1
|
1月前
|
SQL 数据挖掘 数据处理
Python数据分析(二)—— Pandas快速入门
Python数据分析(二)—— Pandas快速入门
|
3天前
|
机器学习/深度学习 数据可视化 数据处理
Pandas进阶学习:探索更多高级特性与技巧
【4月更文挑战第16天】本文深入探讨Pandas的进阶特性,包括向量化操作、apply方法、数据重塑、布尔索引、多重索引、性能优化和库集成。通过学习,可以提升数据处理效率,如使用布尔条件筛选、CategoricalDtype优化性能、分块处理大数据及与NumPy、Matplotlib、Seaborn和scikit-learn集成。掌握这些技巧能助你更好地挖掘数据价值。
|
3天前
|
供应链 搜索推荐 数据挖掘
Pandas实战案例:电商数据分析的实践与挑战
【4月更文挑战第16天】本文通过一个电商数据分析案例展示了Pandas在处理销售数据、用户行为分析及商品销售趋势预测中的应用。在数据准备与清洗阶段,Pandas用于处理缺失值、重复值。接着,通过用户购买行为和商品销售趋势分析,构建用户画像并预测销售趋势。实践中遇到的大数据量和数据多样性挑战,通过分布式计算和数据标准化解决。未来将继续深入研究Pandas与其他先进技术的结合,提升决策支持能力。
|
3天前
|
存储 数据可视化 数据挖掘
实战案例:Pandas在金融数据分析中的应用
【4月更文挑战第16天】本文通过实例展示了Pandas在金融数据分析中的应用。案例中,一家投资机构使用Pandas加载、清洗股票历史价格数据,删除无关列并重命名,将日期设为索引。接着,数据被可视化以观察价格走势,进行基本统计分析了解价格分布,以及计算移动平均线来平滑波动。Pandas的便捷功能在金融数据分析中体现出高效率和实用性。
|
10天前
|
数据采集 数据挖掘 数据处理
Pandas库在数据分析中的作用
【4月更文挑战第9天】Pandas,一个基于NumPy的数据分析Python库,以强大的数据处理和便捷的接口闻名。它包含两个核心数据结构:Series(一维标签数组)和DataFrame(二维表格)。Pandas支持数据导入/导出(如CSV、Excel),数据清洗(处理缺失值和重复值),描述性统计分析,分组聚合,以及与Matplotlib等库集成实现数据可视化。通过多索引和层次化索引,Pandas能灵活处理复杂数据集,是数据科学领域的关键工具。本文旨在帮助读者理解并运用Pandas进行高效数据分析。
|
1月前
|
SQL 数据挖掘 数据库管理
数据分析-pandas(二)
DataFrame是一个二维标记数据结构,其中包含可能不同类型的列。您可以将其视为电子表格或SQL表,或者Series对象的字典。它通常是最常用的pandas对象。与Series一样,DataFrame接受许多不同类型的输入: 一维ndarray,列表,字典,或字典的Series
27 0
|
1月前
|
数据挖掘 BI Python
Python数据分析(三)—— Pandas数据统计
Python数据分析(三)—— Pandas数据统计