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()
相关文章
|
6天前
|
机器学习/深度学习 数据采集 算法
Python用逻辑回归、决策树、SVM、XGBoost 算法机器学习预测用户信贷行为数据分析报告
Python用逻辑回归、决策树、SVM、XGBoost 算法机器学习预测用户信贷行为数据分析报告
16 1
|
4天前
|
机器学习/深度学习 算法 数据挖掘
【Python机器学习专栏】金融数据分析中的机器学习应用
【4月更文挑战第30天】本文探讨了机器学习在金融数据分析中的应用,如股价预测、信用评分、欺诈检测、算法交易和风险管理,并以Python为例展示了如何进行股价预测。通过使用机器学习模型,金融机构能更准确地评估风险、识别欺诈行为并优化交易策略。Python结合scikit-learn库简化了数据分析过程,助力金融从业者提高决策效率。随着技术发展,机器学习在金融领域的影响力将持续增强。
|
4天前
|
Python
conda升级python版本
conda升级python版本
|
4天前
|
数据采集 SQL 数据挖掘
Python数据分析中的Pandas库应用指南
在数据科学和分析领域,Python语言已经成为了一种非常流行的工具。本文将介绍Python中的Pandas库,该库提供了强大的数据结构和数据分析工具,使得数据处理变得更加简单高效。通过详细的示例和应用指南,读者将了解到如何使用Pandas库进行数据加载、清洗、转换和分析,从而提升数据处理的效率和准确性。
|
5天前
|
机器学习/深度学习 数据采集 数据可视化
Python在数据分析领域的应用研究
Python在数据分析领域的应用研究
12 0
|
8天前
|
机器学习/深度学习 数据可视化 数据挖掘
PYTHON链家租房数据分析:岭回归、LASSO、随机森林、XGBOOST、KERAS神经网络、KMEANS聚类、地理可视化
PYTHON链家租房数据分析:岭回归、LASSO、随机森林、XGBOOST、KERAS神经网络、KMEANS聚类、地理可视化
12 0
|
8天前
|
开发者 Python
six,一个神奇的 Python 版本兼容工具库!
six,一个神奇的 Python 版本兼容工具库!
19 4
|
8天前
|
Ubuntu Python
ubuntu升级Python版本
现在,你已成功升级了Python版本并可以使用新版本进行开发和运行程序。
25 1
|
9天前
|
数据采集 数据可视化 数据挖掘
R语言与Python:比较两种数据分析工具
【4月更文挑战第25天】R语言和Python是目前最流行的两种数据分析工具。本文将对这两种工具进行比较,包括它们的历史、特点、应用场景、社区支持、学习资源、性能等方面,以帮助读者更好地了解和选择适合自己的数据分析工具。
|
数据可视化 算法 搜索推荐
(八)Python 图形化界面设计(下)
(八)Python 图形化界面设计(下)
493 0
(八)Python 图形化界面设计(下)