您的位置:首页 > 财经 > 产业 > 北京海淀区疫情最新消息_南京网站优化建站_微博推广方案_百度seo排名360

北京海淀区疫情最新消息_南京网站优化建站_微博推广方案_百度seo排名360

2025/1/10 0:20:58 来源:https://blog.csdn.net/weixin_47753171/article/details/145010377  浏览:    关键词:北京海淀区疫情最新消息_南京网站优化建站_微博推广方案_百度seo排名360
北京海淀区疫情最新消息_南京网站优化建站_微博推广方案_百度seo排名360

主要内容:对采集到的原始数据中的缺失值、重复值、异常值或乱码,进行处理。

1、异常值的处理

1.1 读取数据

1.2处理异常值

1.2.1方法一、将异常值替换为控制,然后删除空值。

1.2.2方法二、将异常值替换为空值后继续宁数据插补

2、乱码的处理

2.1方法一

        如果该网页的编码方式为GBK,使用get()函数获取到响应对象后,就可以通过对响应对象的encoding属性赋值,为响应对象指定编码格式。

2.2方法二

        通过响应对象的apparent_encoding属性获取网页源码中书写的编码格式信息,这样就不需要通过开发者工具查看<meta>标签的编码格式信息。

还有一种常见乱码是以“\u”开头的十六进制字符串,需要通过编码转化的方式来解码。
##############################
##作者:白雪公主的后妈
##时间:2024年1月7日
##主题:Python爬虫基础——数据清洗
##主要内容:对采集到的原始数据中的缺失值、重复值、异常值或乱码,进行处理
##############################
#1、异常值的处理
#1.1 读取数据
import pandas as pd
data = pd.read_excel('E:\\python\\Python_Code\\Excel\\text.xlsx')
print(data)
'''
运行结果:编号   产品  成本价(元/个)  销售价(元/个)  数量(个)  成本(元)  收入(元)  利润(元)    测试数
0   a001   背包        16        65     60    960   3900   2904     10
1   a002   钱包        90       187     50   4500   9350   4850      9
2   a003   背包        16        65     23    368   1495   1127      9
3   a004  手提包        36       147     26    936   3822   2886      8
4   a005   钱包        90       187     78   7020  14586   7566  12132
5   a006  单肩包        58       124     63   3654   7812   4158      5
6   a007  单肩包        58       124     58   3364   7192   3828     11
7   a001   背包        16        65     60    960   3900   2904     12
8   a002   钱包        90       187     50   4500   9350   4850     23
9   a003   背包        16        65     23    368   1495   1127     77
10  a004  手提包        36       147     26    936   3822   2886    201
11  a005   钱包        90       187     78   7020  14586   7566     11
12  a006  单肩包        58       124     63   3654   7812   4158      9
13  a007  单肩包        58       124     58   3364   7192   3828      8
'''
#1.2处理异常值       在测试数列中可以看到个别数差距很大,大部分价格在5~23之间处理异常值有两种方法
#方法一、将异常值替换为控制,然后删除空值。
# data["测试数"][data["测试数"]>23]=None            #将“测试数”列中大于23的替换为空值
# data.loc[data["测试数"] > 23, "测试数"] = None
# print(data.dropna())                             #删除空值所在的行
'''
运行结果:编号   产品  成本价(元/个)  销售价(元/个)  数量(个)  成本(元)  收入(元)  利润(元)   测试数
0   a001   背包        16        65     60    960   3900   2904  10.0
1   a002   钱包        90       187     50   4500   9350   4850   9.0
2   a003   背包        16        65     23    368   1495   1127   9.0
3   a004  手提包        36       147     26    936   3822   2886   8.0
5   a006  单肩包        58       124     63   3654   7812   4158   5.0
6   a007  单肩包        58       124     58   3364   7192   3828  11.0
7   a001   背包        16        65     60    960   3900   2904  12.0
8   a002   钱包        90       187     50   4500   9350   4850  23.0
11  a005   钱包        90       187     78   7020  14586   7566  11.0
12  a006  单肩包        58       124     63   3654   7812   4158   9.0
13  a007  单肩包        58       124     58   3364   7192   3828   8.0
'''
#方法二、将异常值替换为空值后继续宁数据插补
data.loc[data["测试数"] > 23, "测试数"] = None
print(data.fillna(data["测试数"].mean()))                             #对空值所在的位置进行插补#2、乱码的处理
#2.1方法一
'''
如果该网页的编码方式为GBK,使用get()函数获取到响应对象后,就可以通过对响应对象的encoding属性赋值,为响应对象指定编码格式
'''
#response.encoding="gbk"
#这样无论响应头中是否包含编码格式信息,响应对象的text属性都能正确的解码
#2.2方法二
'''
通过响应对象的apparent_encoding属性获取网页源码中书写的编码格式信息,这样就不需要通过开发者工具查看<meta>标签的编码格式信息。
'''
# response.encoding=response.apparent_encoding
#还有一种常见乱码是以“\u”开头的十六进制字符串,需要通过编码转化的方式来解码。
str_16_1="b'\\u4f60\\u597d'"
str_16_2=str_16_1.encode('utf-8').decode('unicode-escape')          #进行编码转化
print(str_16_2)         #转化结果是"b'你好'"
'''
运行结果:
b'你好'
'''

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com