近期为了熟悉Python和基本统计知识,用python做了一个简单的数据分析工具,非常傻瓜,便于使用。这里分享一下关键实践。
具体源代码和软件操作说明已经上传到本人资源中。
一、main
主函数的入口,有相应的main.py,在该py中可以添加一些逻辑,例如控制软件使用时长的。
1、在主函数中调用mainframe,启动主程序窗口
二、frame
1、mainframe:主窗体
2、导入数据,调用函数upload1
3、查看数据模板,调用函数download1
4、简单统计分析,调用函数dataanaly
5、t检验分析,调用函数dataanaly2
6、卡方检验,调用函数dataanaly3
7、相关性分析,调用函数dataanaly4
其中函数mainframe、upload1、download1放置在文件frame.py中,主要实现的选择导入的数据文件,对文件中数据进行基本校验和基本统计等。
函数dataanaly、dataanaly2、dataanaly3、dataanaly4放置在文件dataprocess.py中,对数据进行进一步统计分析,主要是进行相关检验。
函数upload1和dataanaly必须制定,简单统计分析中包含对数据文件的检查(要求数据文件第一行为属性值,第二行开始都是数据记录),只有通过检查的文件才能被分析。
三、frame.py
3.1 全局变量
scripts_path:获取当前系统的路径(指的是该项目路径),因为一些介绍文件放在项目的/files下面,为方便访问设置全局变量当前系统路径+"/files"
data_ready:布尔类型变量,只有当数据检验没问题之后,才会这是为True,默认为False
data_path:用户上传的文件路径
3.2 upload1
3.2.1 函数介绍
1、default_dir:设置默认访问路径,默认访问Desktop
2、fname:弹出打开文件的弹窗,filetypes明确文件类型,初始路径initialpath=default_dir
3、对文件中数据进行check,即调用checkFile函数,check函数对文件数据进行读取和检查
数据格式的说明:允许上传txt文件和excel文件,其中txt调用函数checkData,excel文件调用函数checkData2。文件中确保第一行是属性值,从第二行开始每一列都是数值记录,如果check函数通过,会将全局变量data_ready设置为True,并使用fname记录该文件的绝对路径
4、对于check通过的文件,保存data_path
3.2.2 实现要点
1、调用windows自带对话框,指定上传文件的路径
from tkinter import filedialog
default_dir = os.path.join(os.path.expanduser("~"), 'Desktop')
fname = filedialog.askopenfilename(title='选择打开的文件', filetypes=[('Excel', ".xlsx"),("文本文档", ".txt")],initialdir=(os.path.expanduser(default_dir)))
print('打开的文件', fname)
2、调用windows告警弹窗
import win32api,win32con
win32api.MessageBox(0, error_t, "提醒:上传文件数据有问题", win32con.MB_ICONWARNING)
说明:error_t为字符串,即需要在弹窗中告警的信息。windows有很多种弹窗。
3、python中excel文件的读取
import pandas as pd
text=pd.read_excel(file_path,"Sheet1")
# file_path为excel文件的绝对路径,sheet1即该excel文件的第一个sheet,可以灵活指定
attributes=list(text.columns.values)
#表格第一行数据,为属性数据;从第二行开始都是记录,每个记录里没列都是数值
nrows=text.sh