大家好,小编来为大家解答以下问题,python大作业有哪些题目,python大作业数据分析,现在让我们一起来看看吧!
目录
题目描述
本地简单数据分析平台
一、题目描述
当今社会中统计学、大数据分析等已经成为无论文理的各个学科中必要的研究途径以及
展示数据最好的形式,其便捷性及强大的功能也是各个软件所追求的目标之一。
选择本题,你需要完成一个程序,包含一个 GUI 的界面,能够清晰地引导用户导入数
据文件,并且给出至少两种数据分析及展示方法,最后能够将结果导出为用户指定的格
二、基本实验要求
本题你必须给出一个 GUI 界面,需要清晰直观地给出导入和导出文件的按钮,在导入
文件之后能够给出数种可以进行一键分析的按钮。
根据用户选择的分析方法,需要自动检测导入的数据是否符合要求(例如单变量数据不
能够进行相关分析),并给出相应的提醒或者是报错信息。
展示方法中可以由用户自定义横纵坐标刻度、标题以及图例外观等相关参数,支持双变
量做图等功能,导出前可以由弹窗等形式进行预览。
三、必做部分
你的程序必须有一个 GUI 页面,要求简洁美观,能够一键完成用户所需的操作:
(1)
导入数据文件。基础的单变量数据文件规定为一个 n+1 行两列的 csv 文件。
其中包含 n 个数据,例如下表:
要求 n 不小于 100,数据的来源可以根据自己的专业喜好来选择,可以但不限于
从以下网站获取:
a) 国家统计局:http://data.stats.gov.cn/index.htm
b) Science Data Bank:http://www.sciencedb.cn/index导入的方式可以是直接从当前目录读取特定名称的 csv 文件,也可以给出一个文
本框,由用户输入文件名。
(2) 开展数据分析,必须能够至少输出包括最基本的描述统计量(平均数,中位
数,众数等)。
在导入数据后,应给出相应的数据分析按钮,用户点击后应显示出分析结果。
(3) 对于描述统计结果可视化,必须包括以下两种方式:
a) 柱状图
b) 折线图
(4) 将 Matplotlib 可视化结果可以用弹窗进行预览,并且导出保存,图片格式为
png 格式。保存的位置任意。
四、选做部分
以下内容非必做项,每完成一条选做项,都可以给大作业带来额外的加分,你同样可
以用其他额外的内容来丰富你的大作业,以获得加分。以下为提供的一些思路和方向。
(1)在导入数据方面,支持更多的文件格式和数据文件内容,比如 json、xls 文件,多
变量数据等。
(2)在数据分析方面,添加更多的方法,可以包括但不限于:
a) 广义线性模型
b) 非参数检验
(3)在做图方面,支持更多的做图类型,例如饼图等,支持用户自己定义图例,图线
颜色、标题等。对于多变量的数据,可以进行多线图等多变量的图形绘制。
(4)在 GUI 方面,能够将导入的数据使用表格进行展示。
(5)在用户选择了分析方法后,可以自动检测导入的数据是否符合要求(例如单变量
数据不能够进行相关分析),并给出相应的提醒或者是报错信息。
(6)导出时,你可以利用 Markdown 文本,将数据与分析结果进行整合,最后生成一
份详细的数据报告。
以上选做部分不要求全部完成,也不必局限于给出的这些内容
代码及详细解答如下
from tkinter import* #导入会用上的库
import tkinter.messagebox
from tkinter.messagebox import*
from PyQt5.QtWidgets import (QWidget, QToolTip, QDesktopWidget, QMessageBox,QTextEdit,QLabel,
QPushButton, QApplication,QMainWindow, QAction, qApp, QHBoxLayout, QVBoxLayout,QGridLayout,
QLineEdit) #这是PyQt5最主要的模块
from PyQt5 import QtWidgets
import sys
from PyQt5.QtGui import QFont,QIcon
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtCore import QCoreApplication
import pandas as pd #数据分析用的pandas库
from scipy import stats #stats也是数据分析用的
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #用于正常显示中文
top=Tk() #Tk()是创建窗口
top.title("文件分析窗口1")
label1=Label(top,text="请输入要分析的文件名")
un_textbox=Text(top,height=1,width=20) #定义了一个文本框
enter_button=Button(top,text="开始",command=lambda:enter()) #定义了一个按钮
def enter(): #这个回调函数可以提取出文本框输入的内容,并且可以销毁文本框
global file_path #将file_path设为全局变量,之后提取文件都会用上它
name=un_text