1。 将本地sql文件写入mysql数据库
本文写入的是python数据库的taob表
source [本地文件]
其中总数据为9616行,列分别为title,link,price,comment
2。使用python链接并读取数据
查看数据概括
#-*- coding:utf-8 -*- #author:M10 import numpy as np import pandas as pd import matplotlib.pylab as plt import mysql.connector conn = mysql.connector.connect(host='localhost', user='root', passwd='123456', db='python')#链接本地数据库 sql = 'select * from taob'#sql语句 data = pd.read_sql(sql,conn)#获取数据 print(data.describe())
说明数据的导入是正确的,简单的分析发现问题并不是这么简单,因为comment均值562可能偏大,最大评论数454037也可能出现错误,price价格为0也不太可能出现。
price comment count 9616.00000 9616.000000 mean 64.49324 562.239601 std 176.10901 6078.909643 min 0.00000 0.000000 25% 20.00000 16.000000 50% 36.00000 58.000000 75% 66.00000 205.000000 max 7940.00000 454037.000000
3。缺失值处理
将价格为0的值设置为中位数36
#-*- coding:utf-8 -*- #author:M10 import numpy as np import pandas as pd import matplotlib.pylab as plt import mysql.connector conn = mysql.connector.connect(host='localhost', user='root', passwd='123456', db='python')#链接本地数据库 sql = 'select * from taob'#sql语句 data = pd.read_sql(sql,conn)#获取数据 data['price'][data['price']==0]=None x = 0 for i in data.columns: for j in range(len(data)): if (data[i].isnull()) [j]: data[i][j]='36' x+=1 print(x) #44
结果显示修改了44行的数据。
4。异常值处理
#-*- coding:utf-8 -*- #author:M10 import numpy as np import pandas as pd import matplotlib.pylab as plt import mysql.connector conn = mysql.connector.connect(host='localhost', user='root', passwd='123456', db='python')#链接本地数据库 sql = 'select * from taob'#sql语句 data = pd.read_sql(sql,conn)#获取数据 #缺失值处理 data['price'][data['price']==0]=None x = 0 for i in data.columns: for j in range(len(data)): if (data[i].isnull()) [j]: data[i][j]='36' x+=1 print(x) #异常值处理 #绘制散点图,价格为横轴 data1 = data.T#转置 price = data1.values[2] comment = data1.values[3] plt.plot(price,comment,'o') plt.show() #print(price)
结果如下图,价格为0左右时comment很大可能为异常值,comments为0时,价格极大这个有可能的。
接下来处理评论数异常值,假设异常值分割线设置为20w,
#-*- coding:utf-8 -*- #author:M10 import numpy as np import pandas as pd import matplotlib.pylab as plt import mysql.connector conn = mysql.connector.connect(host='localhost', user='root', passwd='123456', db='python')#链接本地数据库 sql = 'select * from taob'#sql语句 data = pd.read_sql(sql,conn)#获取数据 #缺失值处理 data['price'][data['price']==0]=None x = 0 for i in data.columns: for j in range(len(data)): if (data[i].isnull()) [j]: data[i][j]='36' x+=1 print(x) #异常值处理 da = data.values#重新赋值data #异常值处理,将commments大于200000的数据comments设置为58 cont_clou = len(da)#获取行数 #遍历数据进行处理 for i in range(0,cont_clou): if(data.values[i][3]>200000): #print(data.values[i][3]) da[i][3]='58' #print(da[i][3]) #绘制散点图,价格为横轴 data1 = da.T#转置 price = data1[2] comment = data1[3] plt.plot(price,comment,'o') plt.xlabel('price') plt.ylabel('comments') plt.show()
处理后的输出结果为:
以上这篇python实现数据清洗(缺失值与异常值处理)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。
本文向大家介绍如何处理缺失值数据?相关面试题,主要包含被问及如何处理缺失值数据?时的应答技巧和注意事项,需要的朋友参考一下 数据中可能会有缺失值,处理的方法有两种,一种是删除整行或者整列的数据,另一种则是使用其他值去填充这些缺失值。在Pandas库,有两种很有用的函数用于处理缺失值:isnull()和dropna()函数能帮助我们找到数据中的缺失值并且删除它们。如果你想用其他值去填充这些缺失值,则
主要内容:为什么会存在缺失值?,什么是稀疏数据?,缺失值处理,检查缺失值,缺失数据计算,清理并填充缺失值,删除缺失值在一些数据分析业务中,数据缺失是我们经常遇见的问题,缺失值会导致数据质量的下降,从而影响模型预测的准确性,这对于机器学习和数据挖掘影响尤为严重。因此妥善的处理缺失值能够使模型预测更为准确和有效。 为什么会存在缺失值? 前面章节的示例中,我们遇到过很多 NaN 值,关于缺失值您可能会有很多疑问,数据为什么会丢失数据呢,又是从什么时候丢失的呢?通过下面场景,您会得到答案。 其实在很多时
计算出的 start_date_min 日期当日可能有数据也可能没数据,当没数据就想顺延到有数据的日期,请问怎么改代码,谢谢。。。。 还有个问题就是2020怎么换成年份字符窜,有知道的一起指教,就是怎么求每只 code 每年的最低最高价,一年一年算很麻烦,就想一下算所有的,一并谢了。。。
理想中,我们获取的数据都是一样的格式,可是现实中,会有许多脏数据,有时候是数据太冗余,有时候是数据缺失,有时候是同一种类数据拥有不同的数据格式。比如生日,有的人使用阿拉伯数字,有的人使用英文简写,有的人则是加入了中文字符。 如果只是简单的某一列数据问题,我们可以写一个脚本进行处理,可是,当数据太复杂,数据量太大,我们自己编写脚步就太浪费时间和精力了。有没有什么可视化工具,可以像操作Excel表格很
本文向大家介绍决策树处理缺失值?相关面试题,主要包含被问及决策树处理缺失值?时的应答技巧和注意事项,需要的朋友参考一下 缺失值问题可以从三个方面来考虑 在选择分裂属性的时候,训练样本存在缺失值,如何处理?(计算分裂损失减少值时,忽略特征缺失的样本,最终计算的值乘以比例(实际参与计算的样本数除以总的样本数)) 假如你使用ID3算法,那么选择分类属性时,就要计算所有属性的熵增(信息增益,Gain)。假
本文向大家介绍python数据清洗系列之字符串处理详解,包括了python数据清洗系列之字符串处理详解的使用技巧和注意事项,需要的朋友参考一下 前言 数据清洗是一项复杂且繁琐(kubi)的工作,同时也是整个数据分析过程中最为重要的环节。有人说一个分析项目80%的时间都是在清洗数据,这听起来有些匪夷所思,但在实际的工作中确实如此。数据清洗的目的有两个,第一是通过清洗让数据可用。第二是让数据变的更适合