数据清洗-python实践

# -*- coding: utf-8 -*-import pymysql
import numpy as npy
import pandas as pda
import matplotlib.pylab as pyl
import matplotlib.pyplot as plt#导入数据
conn=pymysql.connect(host="127.0.0.1",user="root",passwd="123456",db="爬虫111")
sql="select * from taob"
data=pda.read_sql(sql,conn)
# print(type(data))
# print(data)
# print(data._values)
# print(data.axes)
# print(data.columns)
# print(data.index)
# print(data['price'].head(4))
# print(type(data['price'].isnull()))
# print(data['price'].isnull().head(4))
for i in range(len(data)):# print(data['price'].isnull()[i])if i==5:break#数据清洗,发现和处理缺失值
x = 0
# print(data.columns)
# print(len(data))
data["price"][(data["price"]==0)]=None
for i in data.columns:  # data.columns:['title', 'link', 'price', 'comment']for j in range(len(data)):  # len(data) 行数9616if(data[i].isnull())[j]:  # 如果为False即插值data[i][j] = "64"  # 空值插入64x += 1
# print(x)#异常值处理、找到异常值、画散点图(横轴:价格,纵轴:评论数)
data2=data.T
price=data2.values[2]
comt=data2.values[3]
plt.xlabel('price')        #显示X坐标标签
plt.ylabel('comt')         #显示Y坐标标签
pyl.plot(price,comt,"o")
pyl.show()
#可以看到有部分数据评论数过高,或许为热销商品或者存在刷评论,
# 还有一部分数据价格过高,甚至高达700,而一般书籍价格不会高过¥150。
# 对于这些异常值我们在作数据分析时一般不会考虑,删除或者改动这些异常值即可。
#处理异常数据,评论大于65,价格大于100都处理掉
line=len(data.values)
col=len(data.values[0])
da=data.values
# print(da[26])
newda=da[26]
newda=npy.row_stack((newda,da[26]))
# print("newda:", newda)
#删除处理法
x=0
for i in range(0,line):for j in range(0, col):if(da[i][3]>65):#评论数大于65continueelif(da[i][2]>100):#价格大于100continueelse:if(x==0):newda=da[i]else:newda=npy.row_stack((newda,da[i]))x+=1da2=newda.T
price=da2[2]
comt=da2[3]
plt.xlabel('price')        #显示X坐标标签
plt.ylabel('comt')         #显示Y坐标标签
pyl.plot(price,comt,"o")
pyl.show()#分布分析
#求最值
#计算极差
#组距:极差/组数
#绘制直方图#求最值
pricemax=da2[2].max()
pricemin=da2[2].min()
commentmax=da2[3].max()
commentmin=da2[3].min()
#极差
pricerg=pricemax-pricemin
commentrg=commentmax-commentmin
#组距
pricedst=pricerg/13  # 13个数据显示一个price
commentdst=commentrg/13# 绘制价格直方图:为了表明数据分布情况。通俗地说就是哪一块数据所占比例或者出现次数较高,哪一块出现概率低
# npy.arrange(最小, 最大, 组距)
pricesty = npy.arange(pricemin,pricemax,pricedst)
# print('pricesty',pricesty)
# print(type(pricesty))
# print(pricesty[1])
plt.xlabel('price')        #显示X坐标标签
plt.ylabel('number')         #显示Y坐标标签
pyl.hist(da2[2], pricesty)
pyl.show()#绘制评论数直方图
commentsty=npy.arange(commentmin, commentmax, commentdst)  # arange(start,stop,step)
plt.xlabel('histcomt')        #显示X坐标标签
plt.ylabel('histnumber')  #显示Y坐标标签
pyl.title("histImage")
pyl.hist(da2[3],commentsty)
pyl.show()

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/567622.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mockito mock void方法_一文让你快速上手 Mockito 单元测试框架

前言在计算机编程中,单元测试是一种软件测试方法,通过该方法可以测试源代码的各个单元功能是否适合使用。为代码编写单元测试有很多好处,包括可以及早的发现代码错误,促进更改,简化集成,方便代码重构以及许…

爬虫-淘宝

import bs4 import requests import xlwt import datetime params{ user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36 } date datetime.datetime.now().strftime(%Y-%m-%d) # 给文件打上时间戳…

vs winform常用函数_使用.net core3.0 正式版创建Winform程序

前阵子一直期待.net core3.0正式版本的出来,以为这个版本出来,Winform程序又迎来一次新生了,不过9.23日出来的马上下载更新VS,创建新的.net core Winform项目,发现并没有Winform窗体设计器。而微软目前则是通过插件的方…

VScode中编写运行C/html文件

VScode运行C程序的所需配置 VScode只是一个编辑器,并不自带C编译器,所以需要 下载mingw 下载安装版本或者压缩文件,解压缩后,配置系统的环境变量。 path中添加mingw/bin的路径 新建include变量,添加mingw/include的路径…

linq结果转换object_你知道Object.entries(),但你还知道有Object.fromEntries()吗?

我们得到 object.entries(),它转换一个object → array。但是,如果您想做相反的事情怎么办?不用再想了! 使用 Object.fromEntries() 来array → object 。const keyValuePair [ [cow, ], [pig, ],];Object.fromEntries(keyValu…

C语言中数组越界访问造成死循环现象

大家请看这样一段代码&#xff08;工具&#xff1a;VC6.0&#xff09;&#xff1a; #include <stdio.h> int main(int argc, char *argv[]) { int i; int arr[10];/* 这里注意循环变量i与数组arr的定义顺序 */ for(i 0; i < 10; i)/* 这里越界了 */ …

java 同步锁_Java多线程:synchronized同步锁的使用和实现原理

作用和用法在多线程对共享资源进行并发访问方面&#xff0c;JDK提供了synchronized关键字来进行线程同步&#xff0c;实现多线程并发访问的线程安全。synchronized的作用主要体现在三个方面&#xff1a;(1)确保线程互斥地访问同步代码&#xff1b;(2)保证共享变量的线程可见性&…

Apache shutdown unexpectedly启动错误解决方法

xampp启动时显示的错误为&#xff1a; 9:52:41 [Apache] Attempting to start Apache app... 9:52:41 [Apache] Status change detected: running 9:52:42 [Apache] Status change detected: stopped 9:52:42 [Apache] Error: Apache shutdown unexpectedly. 9:52:42 …

java基础代码实例_基础篇:详解JAVA对象实例化过程

1 对象的实例化过程对象的实例化过程是分成两部分&#xff1a;类的加载初始化&#xff0c;对象的初始化要创建类的对象实例需要先加载并初始化该类&#xff0c;main方法所在的类需要先加载和初始化类初始化就是执行方法&#xff0c;对象实例化是执行方法一个子类要初始化需要先…

搭建webUI自动化及问题解决:Message: ‘chromedriver‘ executable needs to be in PATH.解决办法

搭建webUI自动化环境 1、conda install selenium即可。 若出现&#xff1a;Message: chromedriver executable needs to be in PATH.Please see https://sites.google.com/a/chromium.org/chromedriver/home。 报错原因&#xff1a;没有配置chrome浏览器的chromedriver 解决…

python内置输入函数_python内置函数 print()

英文文档&#xff1a;print(*objects, sep’ ‘, end’\n’, filesys.stdout, flushFalse)Print objects to the text stream file, separated by sep and followed by end. sep, end, file and flush, if present, must be given as keyword arguments.All non-keyword argume…

webUI自动化一元素定位

实现功能&#xff1a;自动在百度输入框输入test&#xff0c;并进行搜索 from selenium import webdriver from time import sleepdriver webdriver.Chrome() driver.get("http://www.baidu.com")input_text driver.find_element_by_id("kw") print(&quo…

python propresql mysql_python数据库操作mysql:pymysql、sqlalchemy常见用法详解

本文实例讲述了python数据库操作mysql&#xff1a;pymysql、sqlalchemy常见用法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;相关内容&#xff1a;使用pymysql直接操作mysql创建表查看表修改表删除表插入数据查看数据修改数据删除数据使用sqlmary操作mysql创建表查…

webUI自动化二-获取元素信息相关方法

from selenium import webdriver from time import sleepdriver webdriver.Chrome() driver.get("D:\QQFile\注册A.html")# 1获取用户输入框的大小 input_text driver.find_element_by_id("userA") print("元素大小为&#xff1a;",input_text…

python环境变量的配置 alias_配置别名

有没有经常敲错命令&#xff1f;比如git status&#xff1f;status这个单词真心不好记。如果敲git st就表示git status那就简单多了&#xff0c;当然这种偷懒的办法我们是极力赞成的。我们只需要敲一行命令&#xff0c;告诉Git&#xff0c;以后st就表示status&#xff1a;$ git…

C语言-字符串处理函数strcpy

strcpy 原型&#xff1a;strcpy(char destination[], const char source[]); 功能&#xff1a;将字符串source拷贝到字符串destination中。此处将source中的字符串结束标志符‘\0’也一同复制。所以在输出时&#xff0c;切不可以用‘\0’&#xff0c;puts&#xff0c;printf输…

pythonjavascript一起开发_Python开发【第十一篇】:JavaScript

JavaScript是一门编程语言&#xff0c;浏览器内置了JavaScript语言的解释器&#xff0c;所以在浏览器上按照JavaScript语言的规则编写相应代码之&#xff0c;浏览器可以解释并做出相应的处理。一、如何编写1、JavaScript代码存在形式Js代码内容2、JavaScript代码存放位置HTML的…

C语言-字符串处理函数strcat

strccat-字符串拼接函数 char*strcat(char* strDestination, const char* strSource); 参数说明&#xff1a; strDestination&#xff1a;目的字符串&#xff1b;strSource&#xff1a;源字符串。 strcat() 函数把 strSource 所指向的字符串追加到 strDestination 所指向的字…

js数组截取前5个_我不能没有的5个Vue.js库

1.Click Off to Close有的时候&#xff0c;我们需要在用户点击元素之外的时候触发一个事件。最常见的用例是当你想通过点击关闭一个下拉框或对话框时。这是一个必不可少的包&#xff0c;几乎在我构建的每个应用中都会用到。首选&#xff1a;vue-clickawayhttps://github.com/si…

this.$router.push如何刷新页面_小程序丨微信小程序如何实现页面下拉刷新

微信小程序蕴含着众多功能&#xff0c;本期将简单介绍实现页面下拉刷新的方法&#xff0c;通过阅读本文&#xff0c;读者们可以自行动手操作&#xff0c;在实践中认识微信小程序。首先&#xff0c;我们需在json配置中写出以下配置&#xff1a;"enablePullDownRefresh"…