数据分析三剑客【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




目录
相关文章
|
3月前
|
自然语言处理 数据挖掘 数据处理
告别低效代码:用对这10个Pandas方法让数据分析效率翻倍
本文将介绍 10 个在数据处理中至关重要的 Pandas 技术模式。这些模式能够显著减少调试时间,提升代码的可维护性,并构建更加清晰的数据处理流水线。
142 3
告别低效代码:用对这10个Pandas方法让数据分析效率翻倍
|
10月前
|
数据采集 数据可视化 数据挖掘
Pandas数据应用:天气数据分析
本文介绍如何使用 Pandas 进行天气数据分析。Pandas 是一个强大的 Python 数据处理库,适合处理表格型数据。文章涵盖加载天气数据、处理缺失值、转换数据类型、时间序列分析(如滚动平均和重采样)等内容,并解决常见报错如 SettingWithCopyWarning、KeyError 和 TypeError。通过这些方法,帮助用户更好地进行气候趋势预测和决策。
305 71
|
11月前
|
数据采集 存储 数据挖掘
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第27天】在数据分析领域,Python的Pandas库因其强大的数据处理能力而备受青睐。本文介绍了Pandas在数据导入、清洗、转换、聚合、时间序列分析和数据合并等方面的高效技巧,帮助数据分析师快速处理复杂数据集,提高工作效率。
308 0
|
10月前
|
存储 数据采集 数据可视化
Pandas数据应用:电子商务数据分析
本文介绍如何使用 Pandas 进行电子商务数据分析,涵盖数据加载、清洗、预处理、分析与可视化。通过 `read_csv` 等函数加载数据,利用 `info()` 和 `describe()` 探索数据结构和统计信息。针对常见问题如缺失值、重复记录、异常值等,提供解决方案,如 `dropna()`、`drop_duplicates()` 和正则表达式处理。结合 Matplotlib 等库实现数据可视化,探讨内存不足和性能瓶颈的应对方法,并总结常见报错及解决策略,帮助提升电商企业的数据分析能力。
379 73
|
9月前
|
存储 数据采集 数据可视化
Pandas数据应用:医疗数据分析
Pandas是Python中强大的数据操作和分析库,广泛应用于医疗数据分析。本文介绍了使用Pandas进行医疗数据分析的常见问题及解决方案,涵盖数据导入、预处理、清洗、转换、可视化等方面。通过解决文件路径错误、编码不匹配、缺失值处理、异常值识别、分类变量编码等问题,结合Matplotlib等工具实现数据可视化,并提供了解决常见报错的方法。掌握这些技巧可以提高医疗数据分析的效率和准确性。
254 22
|
10月前
|
数据采集 数据可视化 索引
Pandas数据应用:股票数据分析
本文介绍了如何使用Pandas库进行股票数据分析。首先,通过pip安装并导入Pandas库。接着,从本地CSV文件读取股票数据,并解决常见的解析错误。然后,利用head()、info()等函数查看数据基本信息,进行数据清洗,处理缺失值和重复数据。再者,结合Matplotlib和Seaborn进行数据可视化,绘制收盘价折线图。最后,进行时间序列分析,设置日期索引、重采样和计算移动平均线。通过这些步骤,帮助读者掌握Pandas在股票数据分析中的应用。
358 5
|
11月前
|
机器学习/深度学习 数据采集 数据挖掘
解锁 Python 数据分析新境界:Pandas 与 NumPy 高级技巧深度剖析
Pandas 和 NumPy 是 Python 中不可或缺的数据处理和分析工具。本文通过实际案例深入剖析了 Pandas 的数据清洗、NumPy 的数组运算、结合两者进行数据分析和特征工程,以及 Pandas 的时间序列处理功能。这些高级技巧能够帮助我们更高效、准确地处理和分析数据,为决策提供支持。
221 2
|
11月前
|
数据采集 数据可视化 数据挖掘
Python数据分析:Pandas库实战指南
Python数据分析:Pandas库实战指南
|
11月前
|
并行计算 数据挖掘 大数据
Python数据分析实战:利用Pandas处理大数据集
Python数据分析实战:利用Pandas处理大数据集
|
11月前
|
数据采集 数据可视化 数据挖掘
利用Python进行数据分析:Pandas库实战指南
利用Python进行数据分析:Pandas库实战指南