Python基础——数据分析考核(图形化版本)

简介: Python基础——数据分析考核(图形化版本)

环境声明:

如果没有的预先:【pip install *******】

【ALT】+【回车】

import csv
import numpy as np
import matplotlib.pyplot as plt

呈现效果:

image.png

GetRandomInfo.py:

import random
def getClassName():
    randomClass = ("天字一号", "地字一号", "玄字一号", "黄字一号", "东宫正品")
    return randomClass[int(random.random() * len(randomClass))]
def getName():
    """随机姓名"""
    randomNames = (
        "华", "韦", "覃", "琴", "湘", "", "钱", "彭", "邓" "张", "王", "里", "赵", "赵", "李", "春", "梦", "星", "二", "宿", "管", "土", "生",
        "风", "胡")
    return str.format("{0}{1}{2}", randomNames[int(random.random() * len(randomNames))],
                      randomNames[int(random.random() * len(randomNames))],
                      randomNames[int(random.random() * len(randomNames))])
def getSex():
    """随机性别"""
    sex = ("男", "男", "女")
    return sex[int(random.random() * 3)]
def getSubJectName():
    """随机科目"""
    randomClass = ("java", "python", "C#", "php", "go")
    return randomClass[int(random.random() * len(randomClass))]
def getResults():
    """随机成绩"""
    ra = random.randint(0, 10)
    if ra == 1:
        return int(random.random() * 21)+80
    return int(random.random() * 21)+70
def GetRandomInfo():
    """获取500条随机信息"""
    data = []
    for index in range(1, 501):
        strInfo = str.format("{0} {1} {2} {3} {4} {5}", index, getClassName(), getName(), getSex(), getSubJectName(),
                             getResults())
        data.append(strInfo.split(","))
    return data

WriteInfo.py

import csv
import GetRandomInfo
# 文件获取
file = open('info.csv', 'w+', encoding="utf-8")
# 写入操作
writer = csv.writer(file)
# 写入多行记录
writer.writerows(GetRandomInfo.GetRandomInfo())
# 刷新文件
file.flush()
# 关闭文件流
file.close()

ReadInfo.py

import csv
import numpy as np
import matplotlib.pyplot as plt
# 文件获取
file = open('info.csv', 'r', encoding="utf-8")
# 内容读取
list1 = csv.reader(file)
# 记录每科成绩
boyJavaCount = 0
boyJavaResult = 0
girlJavaCount = 0
girlJavaResult = 0
boyPythonCount = 0
boyPythonResult = 0
girlPythonCount = 0
girlPythonResult = 0
boyC_Count = 0
boyC_Result = 0
girlC_Count = 0
girlC_Result = 0
boyPHPCount = 0
boyPHPResult = 0
girlPHPCount = 0
girlPHPResult = 0
boyGoCount = 0
boyGoResult = 0
girlGoCount = 0
girlGoResult = 0
# 信息遍历
for line in list1:
    if len(line) != 0:
        for row in line:
            arr = row.split(" ")
            if arr[3] == "男":
                if arr[4] == "java":
                    boyJavaCount += 1
                    boyJavaResult += int(arr[5])
                elif arr[4] == "python":
                    boyPythonCount += 1
                    boyPythonResult += int(arr[5])
                elif arr[4] == "C#":
                    boyC_Count += 1
                    boyC_Result += int(arr[5])
                elif arr[4] == "php":
                    boyPHPCount += 1
                    boyPHPResult += int(arr[5])
                elif arr[4] == "go":
                    boyGoCount += 1
                    boyGoResult += int(arr[5])
            else:
                if arr[4] == "java":
                    girlJavaCount += 1
                    girlJavaResult += int(arr[5])
                elif arr[4] == "python":
                    girlPythonCount += 1
                    girlPythonResult += int(arr[5])
                elif arr[4] == "C#":
                    girlC_Count += 1
                    girlC_Result += int(arr[5])
                elif arr[4] == "php":
                    girlPHPCount += 1
                    girlPHPResult += int(arr[5])
                elif arr[4] == "go":
                    girlGoCount += 1
                    girlGoResult += int(arr[5])
# 绘图
# 用于累计宽度坐标
x1 = np.arange(5)
# X轴信息
x = ['Java', 'Python', 'C#', 'PHP', 'Go']
# 男孩各科目平均值信息
boy = [boyJavaResult / boyJavaCount,
       boyPythonResult / boyPythonCount,
       boyC_Result / boyC_Count,
       boyPHPResult / boyPHPCount,
       boyGoResult / boyGoCount]
# 女孩各科目平均值信息
girl = [girlJavaResult / girlJavaCount,
        girlPythonResult / girlPythonCount,
        girlC_Result / girlC_Count,
        girlPHPResult / girlPHPCount,
        girlGoResult / girlGoCount]
# 宽度
bar_width = 0.25
# 写入男孩信息
plt.bar(x, boy, bar_width)
# 写入女孩信息
plt.bar(x1 + bar_width, girl, bar_width)
# 一些样式
plt.legend(labels=["boy", "girl"], loc="upper left")
# 标题
plt.title("results")
# 展示
plt.show()
相关文章
|
7月前
|
数据采集 数据可视化 数据挖掘
Python数据分析实战:Pandas处理结构化数据的核心技巧
在数据驱动时代,结构化数据是分析决策的基础。Python的Pandas库凭借其高效的数据结构和丰富的功能,成为处理结构化数据的利器。本文通过真实场景和代码示例,讲解Pandas的核心操作,包括数据加载、清洗、转换、分析与性能优化,帮助你从数据中提取有价值的洞察,提升数据处理效率。
362 3
|
9月前
|
数据采集 数据可视化 搜索推荐
Python数据分析全流程指南:从数据采集到可视化呈现的实战解析
在数字化转型中,数据分析成为企业决策核心,而Python凭借其强大生态和简洁语法成为首选工具。本文通过实战案例详解数据分析全流程,涵盖数据采集、清洗、探索、建模、可视化及自动化部署,帮助读者掌握从数据到业务价值的完整技能链。
1067 0
|
9月前
|
人工智能 数据安全/隐私保护 Python
小红书图文生成器,小红书AI图文生成工具,python版本软件
Pillow库自动生成符合平台尺寸要求的配图7;3)利用Playwright实现自动化发布流程6。
|
6月前
|
数据可视化 大数据 关系型数据库
基于python大数据技术的医疗数据分析与研究
在数字化时代,医疗数据呈爆炸式增长,涵盖患者信息、检查指标、生活方式等。大数据技术助力疾病预测、资源优化与智慧医疗发展,结合Python、MySQL与B/S架构,推动医疗系统高效实现。
|
10月前
|
Ubuntu 安全 API
Python3.14正式支持Free Threaded版本!
Python 社区迎来历史性时刻!Python 3.14 正式将无 GIL 构建列为受支持选项,标志着 Free‑Threaded Phase II 启动。本文将深入解析 PEP 779 规定的支持标准、3.14.0b3 版本的新变化,以及这对Python开发者意味着什么。文末还有小彩蛋哦!
1579 87
|
7月前
|
数据可视化 数据挖掘 大数据
基于python大数据的水文数据分析可视化系统
本研究针对水文数据分析中的整合难、分析单一和可视化不足等问题,提出构建基于Python的水文数据分析可视化系统。通过整合多源数据,结合大数据、云计算与人工智能技术,实现水文数据的高效处理、深度挖掘与直观展示,为水资源管理、防洪减灾和生态保护提供科学决策支持,具有重要的应用价值和社会意义。
|
8月前
|
存储 数据挖掘 大数据
基于python大数据的用户行为数据分析系统
本系统基于Python大数据技术,深入研究用户行为数据分析,结合Pandas、NumPy等工具提升数据处理效率,利用B/S架构与MySQL数据库实现高效存储与访问。研究涵盖技术背景、学术与商业意义、国内外研究现状及PyCharm、Python语言等关键技术,助力企业精准营销与产品优化,具有广泛的应用前景与社会价值。
|
人工智能 Python
【02】做一个精美的打飞机小游戏,python开发小游戏-鹰击长空—优雅草央千澈-持续更新-分享源代码和游戏包供游玩-记录完整开发过程-用做好的素材来完善鹰击长空1.0.1版本
【02】做一个精美的打飞机小游戏,python开发小游戏-鹰击长空—优雅草央千澈-持续更新-分享源代码和游戏包供游玩-记录完整开发过程-用做好的素材来完善鹰击长空1.0.1版本
745 7
|
9月前
|
API 数据安全/隐私保护 开发者
企业微信自动加好友软件,导入手机号批量添加微信好友,python版本源码分享
代码展示了企业微信官方API的合规使用方式,包括获取access_token、查询部门列表和创建用户等功能
|
Shell Python
使用 pyenv 来管理多个 Python 版本(2)
使用 pyenv 来管理多个 Python 版本(2)
515 71
使用 pyenv 来管理多个 Python 版本(2)

推荐镜像

更多
下一篇
开通oss服务