python数据分析与可视化二

公共部分

```

# 引入数据分析工具 Pandas

import pandas as pd

# 引入数据可视化工具 Matplotlib

import matplotlib.pyplot as plt

# 引入科学计算库numpy

import numpy as np

from scipy import stats

#解决输出时列名对齐问题

pd.set_option('display.unicode.east_asian_width', True)

# 解决输出中文乱码问题

plt.rcParams['font.sans-serif'] = ['SimHei']  # 设置显示中文字体

plt.rcParams['axes.unicode_minus'] = False  # 设置正常显示符号

# 读取成绩表数据

data = pd.read_excel('E:\\practiceCode\\pythonCode\\source\\成绩表.xlsx')

# 计算男女生总成绩

data['总成绩'] = data.iloc[:, 2:-1].sum(axis=1)

# 获取列

subjects = data.columns[2:]

```

平均成绩与标准差

```

# 计算男生和女生在每个科目的平均成绩 标准差

subjects = data.columns[2:]

for subject in subjects:

   male_mean = data[data['性别'] == ''][subject].mean()

   male_std = data[data['性别'] == ''][subject].std()

   female_mean = data[data['性别'] == ''][subject].mean()

   female_std = data[data['性别'] == ''][subject].std()

   print(f'{subject} 男生平均成绩: {male_mean}, 标准差: {male_std}')    

   print(f'{subject} 女生平均成绩: {female_mean}, 标准差: {female_std}')


 

```

总成绩差异(平均值/标准差/中位数)

```

# 计算男女生的总成绩

data['总成绩'] = data.iloc[:,2:-1].sum(axis=1)

# 比较男女生总成绩差异 (平均值/中位数/标准差)

male_total_mean = data[data['性别'] == '']['总成绩'].mean()

male_total_median = data[data['性别'] == '']['总成绩'].median()

male_total_std = data[data['性别'] == '']['总成绩'].std()

female_total_mean = data[data['性别'] == '']['总成绩'].mean()

female_total_median = data[data['性别'] == '']['总成绩'].median()

female_total_std = data[data['性别'] == '']['总成绩'].std()

# 输出比较结果  

print(f'男生总成绩平均值:{male_total_mean:.2f}')

print(f'男生总成绩中位数:{male_total_median:.2f}')

print(f'男生总成绩标准差:{male_total_std:.2f}')

print(f'女生总成绩平均值:{female_total_mean:.2f}')

print(f'女生总成绩中位数:{female_total_median:.2f}')    

print(f'女生总成绩标准差:{female_total_std:.2f}' )

```

按性别统计各个科目成绩的中位数

```

subjects = data.columns[2:]

# 按性别统计各个科目成绩的中位数

subjects_median = data.groupby('性别')[subjects].median()

print(subjects_median)

```

使用t检验 计算男生与女生在每个科目上的成绩差异性
```

from scipy import stats

#解决输出时列名对齐问题

pd.set_option('display.unicode.east_asian_width', True)

# 读取成绩表数据

data = pd.read_excel('E:\\practiceCode\\pythonCode\\source\\成绩表.xlsx')

subjects = data.columns[2:]

# 计算男生和女生在每个科目上成绩的差异显著性(例如使用t检验),即使用PandasSxiPy库计算

for subject in subjects:

    t_stat,p_value=stats.ttest_ind(data[data['性别']==''][subject],data[data['性别']==''][subject])

    print(f'{subject} t检验统计量 : {t_stat:.2f} , p :{p_value:.2e}')

```

男女生在各科目的成绩分布直方图

```

subjects = data.columns[2:]

# 绘制男生 女生 在各个科目上的成绩分布直方图 , 使用Matplotlib

for subject in subjects:

    plt.figure(figsize=(10,6))

    plt.hist(data[data['性别'] == ''][subject], alpha=0.5, label='')

    plt.hist(data[data['性别'] == ''][subject], alpha=0.5, label='')

    plt.xlabel(subject)

    plt.ylabel('频数')

    plt.legend()

    plt.show()

```

用箱型图表示男女生总成绩

```

# 绘制男女生总成绩的箱型图 , 使用matplotlib

data.boxplot(column='总成绩',by='性别')

plt.ylabel('总成绩')

plt.show()

```

绘制男生女生在各个科目上的平均成绩雷达图

```

# 绘制男女生 在各个科目上的平均成绩雷达图

labels = np.array(subjects)

num_vars = len(labels)

angles = np.linspace(0, 2 * np.pi, num_vars, endpoint=False).tolist()

male_means = [data[data['性别'] == ''][subject].mean() for subject in subjects]

female_means = [data[data['性别'] == ''][subject].mean() for subject in subjects]

fig, ax = plt.subplots(figsize=(6, 6), subplot_kw=dict(polar=True))

ax.fill(angles, male_means, color='blue', alpha=0.25)

ax.fill(angles, female_means, color='red', alpha=0.25)

ax.set_yticklabels([])

ax.set_xticks(angles)

ax.set_xticklabels(labels)

plt.show()

```

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/753388.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Redis-04 补充】Redis事务

【Redis-04 补充】Redis事务 1. 事务冲突的问题1.1 举例1.2 悲观锁1.3 乐观锁1.4 Redis中的乐观锁 WATCH key [key …]1.5 Redis事务三特性 2. 秒杀案例2.1 相关代码2.2 模拟并发工具httpd-tools 3. 设计一个秒杀系统3.1 预热库存3.2 秒杀请求3.3 生成订单3.4 限流与防刷 4. 总…

如何找合适的C++项目给自己的简历加分?

在开始前刚好我有一些资料,是我根据网友给的问题精心整理了一份「嵌入式的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!! C的工作多种多样&#x…

[深度学习] 前馈神经网络

前馈神经网络(Feedforward Neural Network, FFNN)是人工神经网络中最基本的类型,也是许多复杂神经网络的基础。它包括一个输入层、一个或多个隐藏层和一个输出层。以下是详细介绍: 1. 结构 1. 输入层(Input Layer&am…

入门网络安全工程师要学习哪些内容

大家都知道网络安全行业很火,这个行业因为国家政策趋势正在大力发展,大有可为!但很多人对网络安全工程师还是不了解,不知道网络安全工程师需要学什么?知了堂小编总结出以下要点。 网络安全工程师是一个概称,学习的东西很多&…

Flexsim物流仿真入门-利用网络节点控制行走路线

在布局优化过程中,往往叉车,操作人员的搬运,是会按照一定的行走路线进行的,这就需要我们进行节点的设计,以此来实现特定路径的行走。 在构建过程中,这里将会以案例的形式进行讲解说明。 1)构建…

【Linux】进程间通信_3

文章目录 七、进程间通信1. 进程间通信分类命名管道 未完待续 七、进程间通信 1. 进程间通信分类 命名管道 管道应用的一个限制就是只能在具有共同祖先(具有亲缘关系)的进程间通信。如果我们想在不相关的进程之间交换数据,可以使用FIFO文件…

操作系统之《死锁与银行家算法》【知识点+详细解题过程】

知识点: 1、什么是死锁?(别名"三角恋",我喜欢你你喜欢他他喜欢我,明明都单身但是就是‘占有’不了) 一组进程中,每个进程都无限等待被该组进程中另一进程所占有的资源,因而永远无法…

vue-cli的搭建过程

一、创建一个vue2的项目 二、创建成功后删除这三个文件 三、新建一个App.vue文件 四、在文件中添加这一段话 五、打开命令框输入指令下载router路由 六、新建一个router目录,新建index.js文件 七、导入你的路由,进行配置 打开命令行工具,进入…

【Python Tips】创建自己的函数包并安装进Anaconda,像引入标准包一样直接import导入

目录 一、引言 二、方法步骤 步骤一:创建包目录结构 步骤二:配置__init__.py文件 步骤三:文件夹外配置setup.py文件 步骤四:终端Pip安装 三、结尾 一、引言 在编写项目代码的时候,有些自定义功能的函数是可以复用的。…

Java面向对象特性

Java继承: 继承的概念: 在Java中,继承(inheritance)是面向对象编程的一个重要概念,它允许一个类(子类)继承另一个类(父类)的属性和方法。通过继承&#xff0c…

MySQL高级-SQL优化- order by 优化(尽量使用覆盖索引、注意联合索引创建的规则、增大排序缓冲区大小)

文章目录 0、order by优化原则1、Using filesort2、Using index3、连接数据库4、查看索引5、删除索引6、按照年龄进行排序7、执行计划 order by age8、执行计划 order by age,phone9、创建联合索引 (age,phone)10、再次执行计划 order by age11、再次执行计划 order by age,pho…

SpringMVC处理器映射器HandlerMapping详解

目录 一、前言 二、initHandlerMappings 三、处理器映射器架构 策略接口 请求链 模版类 四、RequestMappingHandlerMapping的初始化 HandlerMethod映射器模版类的初始化 AbstractHandlerMethodMapping.MappingRegistry:内部类注册中心 五、Reques…

从菌群代谢到健康影响——认识肠道丙酸和丁酸

谷禾健康 短链脂肪酸这一词经常出现在谷禾的文章和报告中,那你真的了解短链脂肪酸吗?短链脂肪酸(SCFA)主要是肠道微生物群在结肠内通过发酵碳水化合物(包括膳食和内源性碳水化合物,主要是抗性淀粉和膳食纤维)和一些微生物可利用的蛋白质而产生…

一个人 三个月 干了二十万

相信很多人是被这个标题吸引进来的,但我并不是标题党,我也很讨厌标题党,这篇文章也不在乎流量,更多的是想记录下。 出来创业三个多月了,给大家汇报一下这段时间的业绩吧。一个人,三个多月,干了…

线性图标绘制指南:从基础到精通

图标在生活中随处可见。相比文字来说,图标可以让人在更短的时间内认知并了解信息,并且大大提升信息的视觉美观性,增加设计的艺术感染力。在用户界面中使用图标,是一种用户熟知的设计模式。而线性图标是通过提炼图形轮廓&#xff0…

TIOBE 6月榜单出炉!编程语言地位大洗牌,谁才是王?

C历史上首次超越C!!! TIOBE 公布了 2024 年 6 月编程语言的排行榜:https://www.tiobe.com/tiobe-index/ 排行榜 以下列出的语言代表了第51至第100名。由于它们之间的差异相对较小,编程语言仅以字母顺序列出。 ABC, A…

ubuntu16.04上搭建qt开发环境

安装qt 下载qt在linux下的安装包qt-opensource-linux-x64-5.8.0.run;将安装包拷贝到ubuntu16.04上;执行如下命令进行安装,注意:安装前先断开虚拟机的网络,这样就避免了注册账户的操作 基本上一路按“next”键&#xf…

使用青否数字人直播软件有哪些优势?

使用青否数字人主播主要具有以下优势: 1、降低直播门槛 在垂直程度较高、专业度更强的行业,面对相关品牌们“专业主播难培养”的问题。数字人主播的学习技能和灵活优势尽显。通过数字人直播可以借助知识库配置与AI能力,快速获得技术性知识&am…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 螺旋矩阵填数(100分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 &#x1f…

c语言--指针

前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 本文整理c语言中指针的相关知识点。 指针概念 指针存储的就是数据的地址。 直观理解: 李华家是北洋路130号1单元101 用变量处理数据: 我们去李华家拿数据。 用指针处理数据: 我们去北洋路130号1单元101拿数据…