手把手学爬虫第五弹——数据清洗与数据分析

   日期:2024-12-27    作者:zsjtsj01 移动:http://ljhr2012.riyuangf.com/mobile/quote/74120.html

手把手学爬虫第五弹——数据清洗与数据分析

    数据清洗是指当我们通过爬虫获取数据以后对数据进行清洗,通过python对于数据中的空值、异常值、无效值进行修改删除。进而对清洗后的数据进行分析处理。

使用Numpy处理数据

初识Numpy数组

    NumPy是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库.

创建Numpy数组

    创建一个Numpy的方式有很种,下面我们逐一进行了解测试.

  • 使用array()函数
    array()函既可以创建一维数组也可以创建二维数组。
 
  • 使用zeros()函数
    zerios()函数创建元素值都是0的数组
 
  • 使用ones()函数
    ones()函数创建元素值都为1的数组
 
  • 使用empty()函数
 
  • 使用arange()函数
 
利用NumPy数组进行数据处理
  • 将条件逻辑转为数组运算
        NumPy的where()函数是三元表达式x if condition else y的矢量版本。
 
  • 数组统计运算
 

数据分析工具Pandas

初识Pandas

    Pandas 是一个开放源码、BSD 许可的库,提供高性能、易于使用的数据结构和数据分析工具。Pandas 一个强大的分析结构化数据的工具集,基础是 Numpy(提供高性能的矩阵运算)。Pandas 可以从各种文件格式比如 CSV、JSON、SQL、Microsoft Excel 导入数据。Pandas 可以对各种数据进行运算操作,比如归并、再成形、选择,还有数据清洗和数据加工特征。

Pandas数据结构
Series

Series 类似表格中的一个列(column,类似于一维数组,可以保存任何数据类型。

 

参数说明
data:一组数据(ndarray 类型)。
index:数据索引标签,如果不指定,默认从 0 开始。
dtype:数据类型,默认会自己判断。
name:设置名称。
copy:拷贝数据,默认为 False。

  • 创建方式1
 
  • 创建方式2
 
  • 创建方式3
 
DataFrame

    DataFrame 是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型值)。DataFrame 既有行索引也有列索引,它可以被看做由 Series 组成的字典(共同用一个索引)。

 

参数说明
data:一组数据(ndarray、series, map, lists, dict 等类型)。
index:索引值,或者可以称为行标签。
columns:列标签,默认为 RangeIndex (0, 1, 2, …, n) 。
dtype:数据类型。
copy:拷贝数据,默认为 False。

  • 创建方式1
 
  • 创建方式2
 
  • 根据索引获取值
 
  • 通过属性访问
 
  • 添加数据
 
  • 删除数据
 
Pandas索引操作以及高级索引
索引对象

    Pandas中的索引都是index对象,又称为索引对象,该对象不可修改。
    索引对象不可修改的特性非常重要,这样使得多个数据结构之间能够很安全的共享index对象。

 
重置索引

    reindex()方法作用是对原索引和新索引进行匹配,即,新索引有缘索引的数据,而原索引数据按照新索引排序。

index, columns:要符合的新标签/索引
method:None 、 backfill 、 bfill、pad、ffill、nearest可选
fill_value:可指定填充缺失值
limit:向前或向后填充的最大连续元素数

 
 
索引操作
  • Series索引操作
    Series的索引用法类似于Numpy数组的索引,但是Series的索引既可以通过索引的位置获取、也可以通过索引的名称获取。
 
  • 获取不连续的数据
 
  • DataFrame的索引操作
    DataFrame结构既可以包含行索引、也可以包含列索引。其中,行索引是通过index属性进行获取,列索引是通过columns属性进行获取。
 
  • DataFrame获取不连续的Series对象
 
  • 索引高级操作
    loc:基于标签索引(索引名称,用于按标签选取数据。执行切片操作时,既包含起始索引又包含结束索引。
    iloc:基于位置索引(整数索引,用于按位置选取数据。执行切片操作时,只包含起始索引,不包含结束索引。
 
数据排序
按索引排序
 

axis:0按照行名排序;1按照列名排序
level:默认None,否则按照给定的level顺序排列
ascending:默认True升序排列;False降序排列
inplace:默认False,否则排序之后的数据直接替换原来的数据
kind:排序方法

 
 
 
按值排序

参数即用法同按索引排序。

 
 
 
读写数据操作
读写CSV文件

Pandas为我们提供了read_csv读取CSV文件,该函数涉及参数较多,但是只有几个常用,具体的在这里我就不一一列举,感兴趣的可以看看这个博客read_csv)。下面写个实例看看怎么使用。

 
 
读取txt文件
 
 
读取Excel文件
 
 
读取MySQL数据库
 

sql:SQL命令字符串
con:连接sql数据库的engine,一般可以用SQLalchemy或者pymysql之类的包建立
index_col: 选择某一列作为index
coerce_float:非常有用,将数字形式的字符串直接以float型读入
columns:要选取的列。一般没啥用,因为在sql命令里面一般就指定要选择的列了

 
 
读取mongodb数据库
 
 
数据预处理
空值和缺失值处理

在python里面一般空值使用None表示,缺失值使用NaN表示。Pandas中提供了一些用于检查或处理空值和缺失值的函数。

  • isnull()函数
        该函数的参数只有一个,表示检查空值的对象。
 
  • notnull()函数
 
groupby()数据分组
  • 通过列名分组
 
  • 通过Series对象分组
 
通过字典分组
 
 

    今天的博客就到这了,本期我们一起学习了数据清洗与数据分析,因为这是一个很庞大的体系,所以我这里只列举了常用的一些,当然,也可能有遗漏的地方,后续我会继续添加补充。
    下一期我将带领大家学习爬虫的最后一弹,利用我们清洗完成的数据实现数据可视化。一起期待吧。
    如果你发现有问题或者有遗漏,欢迎指正~~


特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号