Pandas
5.1pandas介绍
1.pandas概念
- 开源的数据挖掘库
- 用于数据探索
- 封装matplotlib ,numpy
-
2.案例分析
- 1.创建DataFrame
-
- pd.DataFrame(ndarray)
-
- 2创建日期
-
- pd.date_range()
- start ---开始日期
- end --结束日期
- periods ---时间跨度
- freq -- 统计时间方式
-
3.DataFrame介绍
1.DateFrame属性
- 对象.shape ----看形状
-
- 对象.index --行索引
-
- 对象.columns ---列索引
-
- 对象.value ---获取值
-
- 对象.T ---转置
-
- 对象.head() --- 查看前几行
-
- 对象.tail() --后几行
-
2.dataframe设置索引
- 1.修改行列索引
- 必须整行或者整列去修改
- 2.重设索引
- 对象.reset_index()
- 3.设置新的索引
- 对象.set_index()
-
- 如果设置索引是两个时候就是multiIndex
-
4.multiIndex和panel类比三维数组
1.multiIndex
- 对象.index
-
- 对象.index.names
-
2.panel —已弃用
- 直接没法进行查看里边的值,需要通过索引获取
-
- 对象[:,:,""]
-
5.series – 一维数组
1.创建
- - 通过ndarray创建
- - 指定索引创建
- - 通过字典创建
-
2.属性
- - 对象.index
- - 对象.value
-
5.2基本数据操作
1.索引操作
- 1.直接获取 --- 先列后行
- 2.loc --- 先行后列,索引值
-
- 3.iloc ----先行后列,索引值的下标
-
- 4.ix---先行后列,混合索引
-
2.赋值操作
- 1.对象[""]
-
- 2.对象.属性值
-
3.排序
1.dataframe
- 对象.sort_values()
-
- by ----按照什么排序
-
- ascending ----升降序
-
- 对象.sort_index()
-
- 注意:by这个参数可以接收多个值,优先按照第一个索引值排序,如果相同,按照后面
-
- 2.series
-
- 对象.sort_values()
-
- 对象.sort_index()
-
5.3DataFrame运算
1.算术运算
- 直接使用方法,add sub。。。。。
-
- 也可以用符号
-
2.逻辑运算
2.1逻辑运算符号
- 直接判断
-
- 2.2逻辑计算函数
-
- 对象.query() 传入字符串
-
- 对象.isin()判断是否包含
-
3.统计运算
- 对象.describe()
-
统计函数
- sum Sum of values
- mean Mean of values
- median Arithmetic median of values
- min Minimum
- max Maximum
- mode Mode
- abs Absolute Value
- prod Product of values
- std Bessel-corrected sample standard deviation
- var Unbiased variance
- idxmax compute the index labels with the maximum
- idxmin compute the index labels with the minimum
- mode --众数
- idxmax ---最大值索引
- idxmin --最小值索引
-
4.累计统计函数
- 函数 作用
-
- cumsum 计算前1/2/3/…/n个数的和
- cummax 计算前1/2/3/…/n个数的最大值
- cummin 计算前1/2/3/…/n个数的最小值
- cumprod 计算前1/2/3/…/n个数的积
-
5.自定义运算
- apply(fuc,axis=)
- func ---自定义函数
-
5.7高级处理----数据离散化
1.什么是数据离散化
- 把一些数据分到某个区间,最后用不同符号,活或者数字表达
-
2.数据离散化api
- pd.qcut() ----把数据大致分为数量相等的几类
-
- pd.cut() ---指定分组几个
-
数量统计
- 对象.value_counts()
-
3.one-hot编码
- 就是把数据转换成0,1统计类型
-
- 别名:哑变量,热独编码
-
api:
- pd.get_dummies()
-
5.8高级处理 --合并
- pd.concat()
-
- axis=
-
- pd.merge()
-
- left -- 左表
-
- right --右表
-
- on --指定键
-
- how --按照什么方式拼接
-
5.9交叉表与透视表
- 1.什么是交叉表,透视表
-
- 就是探索亮列数据之间的关系
-
- 2.pd.crosstable()
-
- 返回具体的数量
-
- 3.对象.piovt_table()
-
- 返回一个百分占比
-
- 5.10高级处理-分组与聚合
-
- 1.api
-
- 对象.groupby()
-
- 参数:as_index -- 是否进行索引
-
- 注意:可以对数据多次分组,需要里面传递一个列表
-