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

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

3.7 训练场

首先我们需要下载一个 Excel 文件:

链接:https://pan.baidu.com/s/1gkEEH1yVA1RdaXTrFbw3ww?pwd=rm9t

提取码:rm9t

下载完成之后,把该文件和我们的代码放到同一个文件夹下,这一操作我们在之前的博客中已经反复说到,这里就不再进行演示

3.7.1 找到一班(名字后面跟的数字表示班级),获取班级将其男生1000米跑,成绩绘制线形图

import numpy as np
import pandas as pd
# 获取1班数据
df = pd.read_excel('./分数汇总.xlsx', sheet_name = 0)
# 获取1班的名字
cnt = df['姓名'].str[3:].astype(np.int16) == 1
df2 = df[cnt]
s = df2['男1000米跑分数']
# 把 Series 数据转为 DataFrame
# 重置行索引,0、1、2、3......
score = s.reset_index()[['男1000米跑分数']]
# 绘图
score.plot()

83.png

绘图虽然绘制出来了,但是报错一大堆,这是因为有中文的原因,我们接着继续处理:

接下来的处理方法涉及 matplotlib,属于超纲内容,可以不进行模拟,安装 matplotlib 见博文matplotlib的安装教程以及简单调用

这是字体需要导包:import matplotlib.pyplot as plt

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# 获取1班数据
df = pd.read_excel('./分数汇总.xlsx', sheet_name = 0)
# 获取1班的名字
cnt = df['姓名'].str[3:].astype(np.int16) == 1
df2 = df[cnt]
s = df2['男1000米跑分数']
# 把 Series 数据转为 DataFrame
# 重置行索引,0、1、2、3......
score = s.reset_index()[['男1000米跑分数']]
# 把字体设置为楷体(你的电脑上需有这个字体才能进行设置)
plt.rcParams['font.family'] = 'STKaiti'
# 调整字体大小
plt.rcParams['font.size'] = 18
# 绘图
score.plot()

1.png

3.7.2 对各项体侧指标进行分箱操作:不及格(0~59)、及格(60~69)、中等(70~79)、良好(80~89)、优秀(90~100)

columns = df.columns
for col in columns:
    if col.endswith('分数'):
        df[col] = pd.cut(df[col], bins = [0, 60, 70, 80, 90, 101],
                         labels = ['不及格', '及格', '中等', '良好', '优秀'],
                         right = False)
df2 = pd.read_excel('./分数汇总.xlsx', sheet_name = 1)
columns = df2.columns
for col in columns:
    if col.endswith('分数'):
        df2[col] = pd.cut(df2[col], bins = [0, 60, 70, 80, 90, 101],
                          labels = ['不及格', '及格', '中等', '良好', '优秀'],
                          right = False)

3.7.3 绘制全校男生1000米跑和男跳远的条形图(分箱操作后统计各个成绩水平数量)

# 获取男1000米跑分数的数据
s1 = df['男1000米跑分数'].value_counts()
s1.sort_index()
# 获取男跳远分数的数据
s2 = df['男跳远分数'].value_counts()
s2.sort_index()
# 合并成为一个新的 DataFrame
df3 = pd.DataFrame({'男1000米跑分数':s1, '男跳远分数':s2})
# 绘图
df3.plot.bar()

2.png

3.7.4 绘制全校女生50米跑和女仰卧的饼图(分箱操作后统计各个成绩水平的数量)

# 获取女50米跑分数的数据
s3 = df2['女50米跑分数'].value_counts()
s3 = s3.sort_index()
# 获取女仰卧分数的数据
s4 = df2['女仰卧分数'].value_counts()
s4 = s3.sort_index()
# 合并数据
df4 = pd.DataFrame({'女50米跑分数':s3, '女仰卧分数':s4})
df4.plot.pie(subplots = True)

3.png

更改一下我们的图像尺寸:

# 获取女50米跑分数的数据
s3 = df2['女50米跑分数'].value_counts()
s3 = s3.sort_index()
# 获取女仰卧分数的数据
s4 = df2['女仰卧分数'].value_counts()
s4 = s3.sort_index()
# 合并数据
df4 = pd.DataFrame({'女50米跑分数':s3, '女仰卧分数':s4})
df4.plot.pie(subplots = True, figsize = (16, 16))

4.png

显示各部分的百分比:

# 获取女50米跑分数的数据
s3 = df2['女50米跑分数'].value_counts()
s3 = s3.sort_index()
# 获取女仰卧分数的数据
s4 = df2['女仰卧分数'].value_counts()
s4 = s3.sort_index()
# 合并数据
df4 = pd.DataFrame({'女50米跑分数':s3, '女仰卧分数':s4})
# 显示百分比,百分比保留两位小数
df4.plot.pie(subplots = True, figsize = (16, 16), autopct = '%0.2f%%')

5.png

3.7.5 绘制男跳远、女跳远的堆叠条形图(分箱操作后统计各个成绩水平的数量)

# 获取男跳远分数的数据
s5 = df['男跳远分数'].value_counts()
s5 = s5.sort_index()
# 获取女跳远分数的数据
s6 = df2['女跳远分数'].value_counts()
s6 = s6.sort_index()
# 数据合并
df5 = pd.DataFrame({'男跳远分数':s5, '女跳远分数':s6})
# 绘制堆叠条形图
df5.plot.bar(stacked = True)

6.png

总结:pandas库的亮点

  • 一个快速、高效的DataFrame对象,用于数据操作和综合索引;
  • 用于在内存数据结构和不同格式之间读写数据的工具:CSV和文本文件、Microsoft Excel、SQL数据库和快速HDF 5格式;
  • 智能数据对齐和丢失数据的综合处理:在计算中获得基于标签的自动对齐,并轻松地将凌乱的数据操作为有序的形式;
  • 数据集的灵活调整和旋转;
  • 基于智能标签的切片、花式索引和大型数据集的子集
  • 可以从数据结构中插入和删除列,以实现大小可变
  • 通过在强大的引擎中聚合或转换数据,允许对数据集进行拆分应用组合操作;
  • 数据集的高性能合并和连接
  • 层次轴索引提供了在低维数据结构中处理高维数据的直观方法;
  • 时间序列-功能:日期范围生成和频率转换、移动窗口统计、移动窗口线性回归、日期转换和滞后。甚至在不丢失数据的情况下创建特定领域的时间偏移和加入时间序列;
  • 性能进行了高度优化,用Cython或C编写了关键代码路径。
  • Python与pandas在广泛的学术和商业领域中使用,包括金融,神经科学,经济学,统计学,广告,网络分析,等等
  • 学到这里,体会一会pandas库的亮点,如果对哪些还不熟悉,请对之前知识点再次进行复习。


目录
相关文章
|
10天前
|
数据采集 存储 数据挖掘
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第27天】在数据分析领域,Python的Pandas库因其强大的数据处理能力而备受青睐。本文介绍了Pandas在数据导入、清洗、转换、聚合、时间序列分析和数据合并等方面的高效技巧,帮助数据分析师快速处理复杂数据集,提高工作效率。
33 0
|
4天前
|
机器学习/深度学习 数据采集 数据挖掘
解锁 Python 数据分析新境界:Pandas 与 NumPy 高级技巧深度剖析
Pandas 和 NumPy 是 Python 中不可或缺的数据处理和分析工具。本文通过实际案例深入剖析了 Pandas 的数据清洗、NumPy 的数组运算、结合两者进行数据分析和特征工程,以及 Pandas 的时间序列处理功能。这些高级技巧能够帮助我们更高效、准确地处理和分析数据,为决策提供支持。
14 2
|
11天前
|
存储 数据挖掘 数据处理
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第26天】Python 是数据分析领域的热门语言,Pandas 库以其高效的数据处理功能成为数据科学家的利器。本文介绍 Pandas 在数据读取、筛选、分组、转换和合并等方面的高效技巧,并通过示例代码展示其实际应用。
24 1
|
2天前
|
并行计算 数据挖掘 大数据
Python数据分析实战:利用Pandas处理大数据集
Python数据分析实战:利用Pandas处理大数据集
|
2天前
|
数据采集 数据可视化 数据挖掘
利用Python进行数据分析:Pandas库实战指南
利用Python进行数据分析:Pandas库实战指南
|
1月前
|
机器学习/深度学习 数据采集 算法
探索Python科学计算的边界:NumPy、Pandas与SciPy在大规模数据分析中的高级应用
【10月更文挑战第5天】随着数据科学和机器学习领域的快速发展,处理大规模数据集的能力变得至关重要。Python凭借其强大的生态系统,尤其是NumPy、Pandas和SciPy等库的支持,在这个领域占据了重要地位。本文将深入探讨这些库如何帮助科学家和工程师高效地进行数据分析,并通过实际案例来展示它们的一些高级应用。
46 0
探索Python科学计算的边界:NumPy、Pandas与SciPy在大规模数据分析中的高级应用
|
1月前
|
数据采集 数据可视化 数据挖掘
Python 数据分析实战:使用 Pandas 进行数据清洗与可视化
【10月更文挑战第3天】Python 数据分析实战:使用 Pandas 进行数据清洗与可视化
77 0
|
3月前
|
数据采集 数据可视化 数据挖掘
数据分析大神养成记:Python+Pandas+Matplotlib助你飞跃!
在数字化时代,数据分析至关重要,而Python凭借其强大的数据处理能力和丰富的库支持,已成为该领域的首选工具。Python作为基石,提供简洁语法和全面功能,适用于从数据预处理到高级分析的各种任务。Pandas库则像是神兵利器,其DataFrame结构让表格型数据的处理变得简单高效,支持数据的增删改查及复杂变换。配合Matplotlib这一数据可视化的魔法棒,能以直观图表展现数据分析结果。掌握这三大神器,你也能成为数据分析领域的高手!
76 2
|
3月前
|
机器学习/深度学习 数据采集 数据可视化
基于爬虫和机器学习的招聘数据分析与可视化系统,python django框架,前端bootstrap,机器学习有八种带有可视化大屏和后台
本文介绍了一个基于Python Django框架和Bootstrap前端技术,集成了机器学习算法和数据可视化的招聘数据分析与可视化系统,该系统通过爬虫技术获取职位信息,并使用多种机器学习模型进行薪资预测、职位匹配和趋势分析,提供了一个直观的可视化大屏和后台管理系统,以优化招聘策略并提升决策质量。
167 4
|
3月前
|
机器学习/深度学习 算法 数据挖掘
2023 年第二届钉钉杯大学生大数据挑战赛初赛 初赛 A:智能手机用户监测数据分析 问题二分类与回归问题Python代码分析
本文介绍了2023年第二届钉钉杯大学生大数据挑战赛初赛A题的Python代码分析,涉及智能手机用户监测数据分析中的聚类分析和APP使用情况的分类与回归问题。
82 0
2023 年第二届钉钉杯大学生大数据挑战赛初赛 初赛 A:智能手机用户监测数据分析 问题二分类与回归问题Python代码分析
下一篇
无影云桌面