Python复杂操作
Python复杂操作—实践:爬虫与数据分析统计、文本词频统计
类Class
定义类
定义一个类Animals:
- _ init( ) _定义构造函数,与其他面向对象语言不同的是,Python语言中,会明确地把代表自身实例的self作为第一个参数传入
- 创建一个实例化对象 cat,init( )方法接收参数
- 使用点号 . 来访问对象的属性
继承/调用类
通过继承创建的新类称为子类或派生类,被继承的类称为基类、父类或超类。
JSON序列化与反序列化
JSON序列化
- json.dumps 用于将 Python 对象编码成 JSON 字符串
JSON反序列化
- json.loads 用于解码 JSON 数据,该函数返回 Python 字段的数据类型
Pandas库
介绍
Pandas是Python第三方库,提供高性能易用数据类型和分析工具
Pandas基于Numpy实现,常与Numpy和matplotlib一同使用
Pandas中有两大核心数据结构: Series(一维数据) 和 DataFrame (多特征数据,既有行索引,又有列索
引)
使用
Series
Series是一种类似于一维数组的对 象,它由一维数组(各种Numpy数据类型)以及一组与之相关的数据标签(即索引)组成
Series的创建:
- 使用Python数组创建
- 使用Numpy数组创建
- 使用Python字典创建
注意: 与字典不同的是:Series允许索引重复
Series的字符串表现形式为:索引在左边,值在右边
如果没有为数据指定索引,则自动创建一个0到N-1(N为数据的长度)的整数型索引
可以通过Series的values和index属性获取其数组表示形式和索引对象
- 与普通Numpy数组相比,可以通过索引的方式选取Series中的单个或一组值
- Series中最重要的一个功能是:它会在算术运算中自动对齐不同索引的数据
DataFrame
- DataFrame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔值等)
- DataFrame既有行索引也有列索引,它可以被看做由Series组成的字典(共用同一个索引)
- 跟其他类似的数据结构相比(如R语言的data.frame),DataFrame中面向行和面向列的操作基本上是平衡的
- 构成DataFrame的方法很多,最常用的一种是直接传入一个由等长列表或Numpy数组组成的字典
- DataFrame结果会自动加上索引(跟Series一样),且全部会被有序排列
- 如果指定了列顺序,则DataFrame的列就会按照指定顺序进行排列
- 跟原Series一样,如果传入的列在数据中找不到,就会产生NAN值
- 列可以通过赋值的方式进行修改:例如,给那个空的“delt”列赋上一个标量值或一组值
- 将列表或数组赋值给某个列时,其长度必须跟DataFrame的长度相匹配
- 如果赋值的是一个Series,就会精确匹配DataFrame的索引,所有空位都将被填上缺失值
- 为不存在的列赋值会创建出一个新列
- 关键字del用于删除列
- 将嵌套字典(也就是字典的字典)传给DataFrame,它就会被解释为:外层字典的键作为列,内层键则作为行索引
- 也可以对上述结果进行转置
- 如果设置了DataFrame的index和columns的name属性,则这些信息也会被显示出来
- 跟Series一样,values属性也会以二维ndarray的形式返回DataFrame中的数据
- 如果DataFrame各列的数据类型不同,则数组的数据类型就会选用能兼容所有列的数据类型
- Pandas的索引对象负责管理轴标签和其他元数据(比如轴名称等)
- 构建DataFrame时,所用到的任何数组或其他序列的标签都会被转换成一个Index
- Index对象是不可修改的,因此用户不能对其进行修改
- Pandas的每个索引都有一些方法和属性,它们可用于设置逻辑并回答有关该索引包含的数据的常见问题。下表中列出了Index的方法和属性
实战
明星图片爬取
1 | import requests |
1 | # 首先我们要导入相关的包 |
科比职业生涯数据爬取与分析
导包
1 | import requests |
数据爬取
1 | #coding=utf-8 |
数据分析
1 | # 篮板、助攻、得分 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小新's Blog!
评论
Va