python数据分析 之 pandas数据统计

news2025/1/15 21:55:50

目录

一:数据集准备

二:加载文件

三:分组操作进行统计


一:数据集准备

可以创建一个txt,并放置pycharm工程目录下

下面是博主的数据集测试,所用数据,需要的自取

1001,Chinese,1,80
1001,Chinese,2,81
1001,Chinese,3,79
1001,Chinese,4,86
1001,Math,1,69
1001,Math,2,70
1001,Math,3,79
1001,Math,4,90
1001,English,1,90
1001,English,2,89
1001,English,3,92
1001,English,4,96
1002,Chinese,1,85
1002,Chinese,2,86
1002,Chinese,3,88
1002,Chinese,4,71
1002,Math,1,63
1002,Math,2,96
1002,Math,3,68
1002,Math,4,72
1002,English,1,63
1002,English,2,93
1002,English,3,86
1002,English,4,75
1003,Chinese,1,87
1003,Chinese,2,81
1003,Chinese,3,82
1003,Chinese,4,77
1003,Math,1,69
1003,Math,2,91
1003,Math,3,61
1003,Math,4,79
1003,English,1,68
1003,English,2,82
1003,English,3,87
1003,English,4,96
1004,Chinese,1,81
1004,Chinese,2,77
1004,Chinese,3,92
1004,Chinese,4,68
1004,Math,1,96
1004,Math,2,85
1004,Math,3,85
1004,Math,4,74
1004,English,1,67
1004,English,2,63
1004,English,3,96
1004,English,4,77

二:加载文件

加载文件 read_csv 

import numpy as np
import pandas as pd

# 列名
columns = ['sno', 'subject', 'unit', 'score']
# 1 加载文件
df = pd.read_csv("student.txt", sep=',', names=columns)
print(df.head())
print(df.shape)
    sno  subject  unit  score
0  1001  Chinese     1     80
1  1001  Chinese     2     81
2  1001  Chinese     3     79
3  1001  Chinese     4     86
4  1001     Math     1     69
(48, 4)

如上结果

加载读取数据集head 头部数据,

shape 规格形状  为4列,分别为学号、科目、次数、分数 

三:分组操作进行统计

1 按照科目分组

# 根据科目进行分组
df_subject = df.groupby('subject')
for i in df_subject:
    print(i)

import numpy as np
import pandas as pd

# 列名
columns = ['sno', 'subject', 'unit', 'score']
# 1 加载文件
df = pd.read_csv("student.txt", sep=',', names=columns, index_col=0)
# 分组操作进行统计
# 根据科目进行分组、只获取分数
df_subject = df.groupby('subject')
for i in df_subject:
    print(i)
('Chinese',       subject  unit  score
sno                       
1001  Chinese     1     80
1001  Chinese     2     81
1001  Chinese     3     79
1001  Chinese     4     86
1002  Chinese     1     85
1002  Chinese     2     86
1002  Chinese     3     88
1002  Chinese     4     71
1003  Chinese     1     87
1003  Chinese     2     81
1003  Chinese     3     82
1003  Chinese     4     77
1004  Chinese     1     81
1004  Chinese     2     77
1004  Chinese     3     92
1004  Chinese     4     68)
('English',       subject  unit  score
sno                       
1001  English     1     90
1001  English     2     89
1001  English     3     92
1001  English     4     96
1002  English     1     63
1002  English     2     93
1002  English     3     86
1002  English     4     75
1003  English     1     68
1003  English     2     82
1003  English     3     87
1003  English     4     96
1004  English     1     67
1004  English     2     63
1004  English     3     96
1004  English     4     77)
('Math',      subject  unit  score
sno                      
1001    Math     1     69
1001    Math     2     70
1001    Math     3     79
1001    Math     4     90
1002    Math     1     63
1002    Math     2     96
1002    Math     3     68
1002    Math     4     72
1003    Math     1     69
1003    Math     2     91
1003    Math     3     61
1003    Math     4     79
1004    Math     1     96
1004    Math     2     85
1004    Math     3     85
1004    Math     4     74)

2 各个科目只取分数 

# 根据科目进行分组只获取分数
df_subject = df.groupby('subject')['score']
for i in df_subject:
    print(i)

import numpy as np
import pandas as pd

# 列名
columns = ['sno', 'subject', 'unit', 'score']
# 1 加载文件
df = pd.read_csv("student.txt", sep=',', names=columns, index_col=0)
# 分组操作进行统计
# 根据科目进行分组、只获取分数
df_subject = df.groupby('subject')['score']
for i in df_subject:
    print(i)
('Chinese', sno
1001    80
1001    81
1001    79
1001    86
1002    85
1002    86
1002    88
1002    71
1003    87
1003    81
1003    82
1003    77
1004    81
1004    77
1004    92
1004    68
Name: score, dtype: int64)
('English', sno
1001    90
1001    89
1001    92
1001    96
1002    63
1002    93
1002    86
1002    75
1003    68
1003    82
1003    87
1003    96
1004    67
1004    63
1004    96
1004    77
Name: score, dtype: int64)
('Math', sno
1001    69
1001    70
1001    79
1001    90
1002    63
1002    96
1002    68
1002    72
1003    69
1003    91
1003    61
1003    79
1004    96
1004    85
1004    85
1004    74
Name: score, dtype: int64)

3 各个科目的平均成绩

df_subject_mean = df.groupby('subject')['score'].mean()
print(df_subject_mean)

import numpy as np
import pandas as pd

# 列名
columns = ['sno', 'subject', 'unit', 'score']
# 1 加载文件
df = pd.read_csv("student.txt", sep=',', names=columns, index_col=0)
# 分组操作进行统计
# 根据科目进行分组、只获取分数
# df_subject = df.groupby('subject')['score']
# for i in df_subject:
#     print(i)

df_subject_mean = df.groupby('subject')['score'].mean()
print(df_subject_mean)
subject
Chinese    81.3125
English    82.5000
Math       77.9375
Name: score, dtype: float64

4 各个同学,各个科目的平均成绩
# 分组因素 学号 科目
df_mean = df.groupby(['sno', 'subject'])['score'].mean()
print(df_mean)

import numpy as np
import pandas as pd

# 列名
columns = ['sno', 'subject', 'unit', 'score']
# 1 加载文件
df = pd.read_csv("student.txt", sep=',', names=columns, index_col=0)
# 分组操作进行统计
# 每个同学 每个科目的平均成绩
# 分组因素 学号 科目
df_mean = df.groupby(['sno', 'subject'])['score'].mean()
print(df_mean)

sno   subject
1001  Chinese    81.50
      English    91.75
      Math       77.00
1002  Chinese    82.50
      English    79.25
      Math       74.75
1003  Chinese    81.75
      English    83.25
      Math       75.00
1004  Chinese    79.50
      English    75.75
      Math       85.00
Name: score, dtype: float64

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

富芮坤蓝牙FR801xH开发环境搭建

富芮坤蓝牙FR801xH方案开发资源包网盘下载链接:网盘 提取码:30qu 搭建过程: 安装Keil开发工具:mdk525.exe 可以从Keil官网下载:http://www.keil.com/files/eval/MDK525.EXE 也可以使用网盘tools目录里的包装包 其中需要注意选择的…

Qt扫盲-QScrollArea理论总结

这里写目录标题1. 概述2. 滚动条策略3. 子控件4. 尺寸提示1. 概述 QScrollArea 用于显示滚动区域框架内的子控件的内容。如果控件超过框架的大小,视图可以提供滚动条,以便可以查看子控件的整个区域。子控件必须使用 setWidget() 指定。但是在 QDesigner…

【车载开发系列】UDS诊断---请求下载($0x34)

【车载开发系列】UDS诊断—请求下载($0x34) UDS诊断---请求下载($0x34)【车载开发系列】UDS诊断---请求下载($0x34)一.概念定义二.产生背景三.报文格式1)请求报文2)肯定响应3&#x…

[附源码]Nodejs计算机毕业设计基于的民宿租赁系统Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置: Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分…

MySQL处理非结构化JSON数据(附 MyBatis-Plus 集成)

概述 MySQL 自5.7起开始支持JSON格式的非结构化数据,并且在8.x版本进行性能优化 关于 JSON JSON(JavaScript Object Notation, JS对象简谱)是一种轻量级的数据交换格式。它基于 ECMAScript(European Computer Manufacturers Asso…

Spring Cloud Alibaba

Spring Cloud Alibaba第五部分 第二代 Spring Cloud 核心组件(SCA)第 1 节 Nacos 服务注册和配置中心1.1 Nacos 介绍1.2 Nacos 单例服务部署1.3 微服务注册到Nacos1.4 负载均衡1.5 Nacos 数据模型(领域模型)1.6 Nacos 配置中心1.6…

智能家居DIY创意之智能灯泡

一、什么是智能灯 传统的灯泡是通过手动打开和关闭开关来工作。有时,它们可以通过声控、触控、红外等方式进行控制,或者带有调光开关,让用户调暗或调亮灯光。 智能灯泡内置有芯片和通信模块,可与手机、家庭智能助手、或其他智能…

水下潜航器的建模与控制

(线性系统理论大作业) 题目 水下潜器模型,可能是潜艇或者鱼雷等对象。一个主推进螺旋桨,前后两对水平陀翼,后面一对垂直陀翼。   潜器前进过程中,通过调节助推进螺旋桨推力,以及三对陀翼的角度变化,对潜…

paddle_gpu安装配置

paddle_gpu安装配置1.确认安装版本2. 安装相关文件2.1 下载与安装3.cuDNN下载及安装4.创建conda虚拟环境5.参考教程1.确认安装版本 操作系统:windows安装方式:condapython版本:python3.7CUDA版本:本人电脑版本【11.6.134】,低于此版本电脑都…

傻白入门芯片设计,盘点CPU业界的顶尖人才(十四)

这篇文章主要是针对现在CPU业界的顶尖人才,体现为以下几点:提出了革命性的技术路线,做出了杰出的产品,为公司做出重要贡献。按照当前供职情况,根据国际巨头所在公司分类,我主要收集了AMD,其余几…

【DevOps实战系列】第八章:详解Jenkins集成Docker私服Nexus3

个人亲自录制全套DevOps系列实战教程 :手把手教你玩转DevOps全栈技术 Jenkins集成Docker镜像仓库 docker私服已经搭建完毕,下边我们期望jenkins做的事是: ①通过git拉取代码②通过maven构建生成jar包③构建含有jar包的镜像④推送到docker仓库…

五问补盲(三) | 补盲激光雷达,敢不敢直面新的安全威胁?

作者 | 爱LiDAR的小飞哥 编辑 | 王博在激光雷达上车的热潮中,各家都在技术参数上进行着“你死我活”的拼杀。 那么,参数代表一切吗?举个例子,测距200米的激光雷达一定比测距150米的更好吗? 可以肯定地说,非…

JVM 之 AdaptiveSizePolicy 参数

AdaptiveSizePolicy 简介 AdaptiveSizePolicy(自适应大小策略) : JDK 1.8 默认使用 UseParallelGC 垃圾回收器,该垃圾回收器默认启动了 AdaptiveSizePolicy,会根据GC的情况自动计算计算 Eden、From 和 To 区的大小。 配置: 开启…

vue生命周期

vue的生命周期就是vue实例从创建到销毁的全过程,就是从开始创建、初始化数据、编译模版、挂载Dom、更新渲染、卸载等⼀系列过程,在这个过程中存在生命周期的钩子函数,我们可以在对应阶段添加实现自己的代码。 钩子函数(共8个&…

智慧物流|Springboot+Vue+Nodejs实现智慧物流系统

作者主页:编程指南针 作者简介:Java领域优质创作者、CSDN博客专家 、掘金特邀作者、多年架构师设计经验、腾讯课堂常驻讲师 主要内容:Java项目、毕业设计、简历模板、学习资料、面试题库、技术互助 收藏点赞不迷路 关注作者有好处 文末获取源…

Java如何读取输入

文章目录0.写在前面1.介绍2.举例3.写在最后0.写在前面 Java语言可以接收从键盘的输入,一般用来在调试的时候会用到,实际开发一般不用。 所以在此记录比较简单。 1.介绍 读取流程: 1.导入需要的工具包 2.构造一个“标准输入流”System.in关…

软件测试基础理论体系学习10-什么是本地化测试?本地化测试有哪些问题?本地化测试的重点是什么?

10-什么是本地化测试?本地化测试有哪些问题?本地化测试的重点是什么?1 本地化测试概述1.1软件本地化概念1.2 软件本地化工程1.3 软件本地化的重要性2 本地化测试翻译问题2.1 软件本地化不等于软件翻译2.2 软件本地化语言翻译技术2.2.1 翻译记…

K8s Service 负载均衡底层分析

当我们创建完 Pod 后,Pod 的 IP 与 Service IP 会自动分配,而 Pod IP 仅 K8s 集群内部访问,那 K8s 集群外部客户端又是如何访问 Pod 呢?看了官方相关文档,查询到是通过 Host 的 iptables(即 K8s 集群节点的…

服务器多用户共享Anaconda

实验室最近买了台服务器,这篇Blog用来记载一下给ubuntu 20.04的服务器安装一个共享的anaconda的步骤。 安装Anaconda 首先去anaconda的官网下载linux的安装包,推送到服务上。然后进行安装: sudo bash ./Anaconda3-2022.10-Linux-x86_64.sh…

99.(leaflet之家)leaflet军事标绘-分队战斗行动修改

地图之家总目录(订阅之前请先查看该博客) 地图之家:cesium+leaflet+echart+地图数据+地图工具等相关内容的介绍 文章末尾处提供保证可运行完整代码包,运行如有问题,可“私信”博主。 效果如下所示: 下面献上完整代码,代码重要位置会做相应解释 <!DOCTYPE html> …