数据分析(三)Pandas
一.Pandas的简介
pandas是一个强大的Python数据分析的工具包,它是基于Numpy构建的,正因pandas的出现,让Python语言也成为使用最广泛而且强大的数据分析环境之一。
Pandas的主要功能:
- 具备对其功能的数据结构DataFrame,Series
- 集成时间序列功能
- 提供丰富的数学运算和操作
- 灵活处理缺失数据
安装方法:
pip install pandas
引用方法:
import pandas as pd
二.Pandas之Series
Series是一种类似于一维数组的对象,由一组数据和一组与之相关的数据标签(索引)组成
1.创建和取值方式
第一种
第二种
第三种
生成一个全是0的数组
2.对缺失数据的填充
共有四种方式
- dropna() # 过滤掉值为NaN的行
- fill() # 填充缺失数据
- isnull() # 返回布尔数组,缺失值对应为True
- notnull() # 返回布尔数组,缺失值对应为False
3.Series特性
和numpy相同的特性
- 从ndarray创建Series:Series(arr)
- 与标量(数字):sr * 2
- 两个Series运算
- 通用函数:np.ads(sr)
- 布尔值过滤:sr[sr>0]
- 统计函数:mean()、sum()、cumsum()
支持字典的特性
- 从字典创建Series:Series(dic),
- In运算:'a'in sr、for x in sr
- 键索引:sr['a'],sr[['a','b','d']]
- 键切片:sr['a':'c']
- 其他函数:get('a',default=0)等
4.整数索引
pandas当中的整数索引对象可能会让初次接触它的人很懵逼,接下来通过代码演示:
sr = pd.Series(np.arange(10)) sr1 = sr[3:].copy() sr1 运行结果: 3 3 4 4 5 5 6 6 7 7 8 8 9 9 dtype: int32 # 到这里会发现很正常,一点问题都没有,可是当使用整数索引取值的时候就会出现问题了。因为在pandas当中使用整数索引取值是优先以标签解释的,而不是下标 sr1[1]
解决方法:
- loc属性 # 以标签解释
- iloc属性 # 以下标解释
5.Series数据对齐
pandas在运算时,会按索引进行对齐然后计算。如果存在不同的索引,则结果的索引是两个操作数索引的并集。
灵活的算术方法:add,sub,div,mul
二.Pandas之DataFrame
DataFrame是一个表格型的数据结构,相当于是一个二维数组,含有一组有序的列。他可以被看做是由Series组成的字典,并且共用一个索引。
1.创建和取值方式
第一种
第二种
2.常用的属性和方法
- index 获取行索引
- columns 获取列索引
- T 转置
- values 获取值索引
- describe 获取快速统计
3.操作表格
4.读取网页的表格
例:读取百度百科NBA总冠军并从中筛选数据
a.读取历年数据
b.将表格进行筛选整理并写到文件中
c.筛选出历年的冠军并根据获得冠军次数进行排序
d.筛选出历年FMVP,并根据次数排序
5.时间对象处理
时间序列类型
- 时间戳:特定时刻
- 固定时期:如2019年1月
- 时间间隔:起始时间-结束时间
Python库:datatime
- date、time、datetime、timedelta
- dt.strftime()
- strptime()
99