python怎么对数据进行预处理(怎么通过python对数据预处理)

当我们通常使用Python进行数据处理和分析时,在导入了大量的库之后
,即预览数据,查看数据中是否存在缺失值或重复值等异常情况,并进行处理。本文将结合GUI工具PySimpleGUI来讲解如何制作自己的数据预处理小工具,让这个过程可以自动化!最终的效果如下
本文将分为三个部分:
制作GUI界面、讲解数据处理、封装和测试主要涉及以下模块:
PySimpleGUIpandasmatplotlib I .这是制作GUI界面的老规则了。先说思路再编码。首先说一下使用PySimpleGUI或者那四个进程。
“引入模块==创建元素并填充布局==创建表单==创建事件循环”
从元素上,从图中我们可以知道,我们需要的元素包括指令的菜单栏,看起来凹进去的数据预处理框,框中的三个单选项值,读取文件路径的三个元素(固定文本,输入文本,浏览按钮),以及‘查看,处理,关闭’三个按钮。总的来说,我们需要整个形态中的所有元素都分布在中间。菜单栏分布在表单边缘的左侧。具有线内聚性的总分布。从事件的角度来看,我们需要在指令菜单中添加用户需要的注意事项。在文件读取位置,我们设置了两种常用数据存储格式的Excel格式(“。xlsx“,”。xls”)。看完之后,我们在数据预处理框架中选择一个流程。然后,我们可以检查每个错误的弹出框,最后检查后处理数据。处理过程需要用处理后的数据覆盖原始数据文件。整个过程必须是连续的。这里有个小技巧:每次数据分析前最好做个备份,防止分析过程中失败却找不到原始数据文件的尴尬。
在访问了ideas之后,代码是否感觉已经可以移动了?先实现一波,先看完整代码,再详细拆解。
importpysimpleguiassgimportdasasportmatplotlibmatplotlib . use(‘ tkagg ‘)SG . change look and feel(‘ greentan ‘)menu _ def=[[‘使用说明’,[‘ Note ‘]]]layout=[[SG . menu(menu _ def,tearoff=true)],[sg.frame (layout=[[sg.radio(‘重复值处理’,’ RADIO1 ‘,size=(15,1),key=’ dup ‘)。Size=(15,1),key=’ MIS ‘),sg.radio(‘离群点处理’,’ radio1 ‘,default=true,key=’ war’)],title=’数据预处理’,title _ color=’ green ‘,title _ location=’ n ‘ Relief=SG . Relief _ sinked,tooltip=’选择其中一种处理方法’),[sg .Text(‘文件位置’,size=(8,1),auto _ size _ text=false,justification=’右’),sg . input text(enable _ events=true)Key=’陆晶’),SG .Button (‘browse ‘,key=’getf’)],[sg。Button (‘view ‘,key=’look ‘),sg。Submit (‘handle ‘,key=’handle ‘),sg。cancel(‘ close default _ element _ size=(40,1),grab _ anywhere=False)while true : event,Values=window . read()I event==’ getf ‘ 3360 text=SG . popup _ get _ file(‘请单击浏览键或自己填写文件的绝对路径),title=’获取文件’,file _ types=((‘Excel文件’,’ *。xlsx ‘)),(‘ ‘ *。xls ‘),))sg.popup (‘prompt ‘,’确定要选择文件-‘,text)窗口[‘陆晶’]。更新(text) If event==’ look’ 3360 ‘ ‘ ‘用户点击查看按钮触发的事件’ ‘ if event==’ handle’ 3360 ‘ ‘用户点击处理按钮触发的事件’ ‘ if event==’ cancel ‘或Event==SG . win _ closed : BreakifEvent=Next,说明相关参数的作用。首先是matplotlib.use(‘TkAgg ‘):使用matplotlib模块并调用这个函数是用在我们查看离群值(方框图显示)的处理中,就是改变图像显示的方式:TkAgg(一个交互背景)。所谓交互背景,就是可以任意操作图像,放大缩小区域,查看数值等等。之所以调用这个函数,首先是因为我们使用GUI有那种交互的感觉,其次如果数据量大的话,方框图会很小,可以方便查看。其次,sg。ChangeLookAndFeel(‘GreenTan ‘):更改窗体的颜色。那么menu_def就是菜单栏。使用格式[” “,[“]]定义主菜单栏和子菜单栏。这个功能是添加一个可爱的虚线来分隔每个字段。Sg。Frame():这个和sg.columns()元素的用法一样,主要用于多个子元素。我们在这里设置浮雕参数,使整个框架看起来呈凹形。工具提示参数是用鼠标移动框架时出现的一个小提示框。title_location参数的使用非常有趣。就是题串的位置设置,包括(n,s,e,w,se等。).你很快就会发现这个位置不同于其他元素的布局位置设置。它以地理坐标作为子参数。Sg。收音机:收音机盒。将所有单选按钮框的子参数group_id设置为相同的值,以便您可以从三个选项中选择一个。这里,我们使用“无线电1”作为group_id。Sg。Button():我们在整个GUI中使用了4个按钮,包括一个专有的按钮Cancel。Sg.popup():一个相对初级的弹出框,用来显示提示类的关键信息。Sg.popup_get_file():这是一个高级弹出框元素,来自一个带有文本输入字段和浏览按钮的弹出窗口,用户可以选择文件。效果如下
二、数据预处理GUI部分做好之后,我们再来讲解数据处理部分,主要针对重复值、缺失值和异常值。
准备数据。我们这里用的是2020年10月28日a股的行情。部分数据显示:
我们可以看到其中有重复的行和缺失的值。
对于二维列表数据框架的重复值处理,Pandas模块是office简洁性最方便、最具象征性的模块。
Importpanda ASPDDF=df。read _ excel(‘文件的绝对路径’)im for=df [df。duplicated ()] im for=str (im for)首先调用Pandas模块,读取文件路径。这里之所以取绝对路径而不取相对路径,是因为我们后来打包的GUI是Python自带的不依赖文件的环境,所以相对路径读取无法识别。Df[df.duplicated()]熊猫中的函数以二维列表的形式打印重复值对应的行。这里之所以把df变量改成str字符串形式,是因为以后我们在GUI中使用弹出窗口元素时,要以字符串形式加载。最终的重复值处理如下:
Df=df。drop _ duplicates (inplace=true)代码只有一行,却能删除整个数据表中所有的重复值,可见熊猫函数的强大。至于为什么用inplace=True,是因为删除函数并不改变原来的表结构,所以需要用新表覆盖原来的表。
对于缺失值的处理,请首先查看代码。
Importadasaspddf=df.read _ excel(‘文件的绝对路径’)# df.isnull () im for 1=df.isnull()。sum () # df.isnull()。any () im for 1=str (im for 1)对于有缺失值的数据表,df.isnull该函数的作用是判断是否为null。如果为空,则给出True,否则给出False。这里我们使用df.isnull()。sum()计算每个列字段中缺失值的数量。如果数据量很大,也可以使用df.isnull()。any()查看仅包含缺失值的行。方法:处理缺失值的方法有很多,如取平均值、取中值、删除、取下限值等。这里我们用取上限值的方法来填写。
Df=df.fillna(method=’pad ‘)离群点处理所谓离群点,就是一个数字字段中出现一个或多个组外的数字。例如,一个百位数出现在一位数列中,这个百位数就是异常值。用Python检测离群值有两种方法:箱线图观察和标准差观察。这里我们选择箱线图来观察。箱线图是一种统计图,用于显示所选数据的分散程度。通过设定一个标准,将大于或小于箱线图上的下线的数值表示为异常点。
如图所示,下四分位数表示样本中有25%的数据小于这个数,记为。上四分位数意味着样本的25%大于这个数,记为。上四分位数与下四分位数之差的1.5倍加上上四分位数就是上沿,反之亦然。”
上边缘和下边缘”在熊猫中,你可以称之为。boxplot()函数来绘制一个箱形图。
Importpandasaspddf.boxplot()打包和效果呈现写完所有代码,我们就可以用pyinstaller打包了。假设你的程序名为yuchuli.py,在cmd窗口输入,完成打包。
pyinstaller-Fyuchuli.py打包后,exe在Python文件夹的dist文件夹中。先开始看看效果吧。
可以看到,我们需要的数据预处理的三个函数:重复值、缺失值、异常值都可以按照指定的方式进行处理!当然,你可以修改本文提供的方法,定制一个属于你平时习惯的数据预处理软件!

好玩下载

索尼音乐下载+索尼音乐下载金标

2024-8-6 15:49:53

好玩下载

影之刃

2024-2-3 7:06:38

购物车
优惠劵
搜索