Python-机器学习基础-Pandas
Pandas
- Pandas介绍
- pandas概念
- 开源的数据挖掘库
- 用于数据的探索
- 封装了matplotlib,numpy
- pandas概念
- 案列知识点
- 创建DataFrame
- pd.DataFrame(ndnarray)
- 创建日期
- pd.data_range(start,end,periods,freq)
- start
- 开始时间
- end
- 结束时间
- periods
- 书简跨度
- fred
- 统计时间方式
- start
- pd.data_range(start,end,periods,freq)
- 创建DataFrame
- DataFrame介绍
- DataFrame属性
- 对象.shape()
- 对象.index()
- 对象.columns()
- 对象.values()
- 对象.T
- 对象.head()
- 对象.tail()
- DataFrame设置索引
- 修改行列索引
- 必须整行或者整列去进行修改
- 重设索引
- 对象.reset_index()
- 设置新索引
- 对象.set_index() 如果设置索引是两个的时候就是multiIndex
- 修改行列索引
- DataFrame属性
- 基本数据操作
- 索引操作
- 直接索引(先列后行)
- stock_data["列"]["行"]
- loc(先行后列),索引值
- stock_data.loc["2018-02-27":"2018-02-23","high"]
- iloc(先行后列),索引值下标
- stock_data.iloc[:3,:5]
- ix(先行后列),混合索引
- 已经没有这个API了
- 直接索引(先列后行)
- 赋值操作
- 对象[""]
- 对象.close
- 排序
- dataframe
- 对象.sort_value(by=,ascending=)
- by -- 按什么排序
- ascending -- 升降序
- 对象.sort_index()
- 注意:by课以接收多个值,优先按照第一个索引排序 如果相同,按后面的
- 对象.sort_value(by=,ascending=)
- series
- 对象.sort_values()
- 对象.sort_index()
- dataframe
- 索引操作
- DataFrame运算
- 算数运算
- 直接使用方法
- add、sub ……
- 也可以使用符号
- 直接使用方法
- 逻辑运算
- 逻辑运算
- 逻辑运算符<, >, |, &
- 直接判断
- 逻辑运算符<, >, |, &
- 逻辑运算函数
- 对象.query("")
- 对象.isin()
- 逻辑运算
- 统计函数
- 对象.describe()
- 统计函数
- sum
- mean
- 中位数
- ……
- mode
- 众数
- idxmax
- 最大的索引
- idxmin
- 最小的索引
- 累计统计函数
- cumsum
- 计算前1/2/3/.../n个数的和
- cummax
- 计算前1/2/3/.../n个数的最大值
- cummin
- 计算前1/2/3/.../n个数的最小值
- cumprod
- 计算前1/2/3/.../n个数的积
- cumsum
- 自定义运算
- apply(func, axis)
- func -- 自定义函数
- apply(func, axis)
- 算数运算
-
- Pandas画图
- 对象.plot(x,y,kind)
- kind
- line
- 默认折现图
- bar
- barh
- 条形图旋转
- hist
- pie
- scatter
- line
- kind
- 对象.plot(x,y,kind)
- Pandas画图
- 文件读取与存储
- csv
- 读取
- pd.read_csv
- 参数:usecols -- 需要哪列
- pd.read_csv
- 存储
- 对象.to_csv
- 参数:columns -- 保存哪列
- 对象.to_csv
- 读取
- hdf
- 读取
- pd.read_hdf()
- 写入
- 对象.to_hdf()
- 注意:保存文件是****.h5
- 读取
- json
- 读取
- pd.read_json()
- 写入
- 对象.to_json()
- orient -- 按照什么方式读取或者写入
- lines -- 是否按照行读取和写入
- 对象.to_json()
- 读取
- 推荐使用hdf5文件
- 压缩方式,读取效率快
- 压缩后,节省空间
- 支持跨平台
- csv
- 高级处理
- 高级处理-缺失值处理
- 判断数据是否为NaN
- np.any(pd.isnull(movie)) -- 如果有一个缺失值,就返回True
- np.all(pd.notnull(movie)) -- 如果有一个缺失值,就返回False
- 处理方式
- 存在缺失值,并且是NaN
- 删除存在的缺失值:dropna(axis='rows')
- 不会修改原数据,需要接受返回值
- 替换缺失值:fillna(value,inplace=True)
- value:替换的值
- inplace:True会修该原数据;False不替换修改,生成新的对象。
- 删除存在的缺失值:dropna(axis='rows')
- 不是缺失值nan,有默认标记的
- 对象.replace(to_place)
- to_repacle -- 替换前的值
- value -- 替换后的值
- 对象.replace(to_place)
- 存在缺失值,并且是NaN
- 判断数据是否为NaN
- 高级处理-数据离散化
- 数据离散化
- 把一些数据分到某个区间,最后用不同的符号或者数字表达
- 离散化API
- pd.qcut() -- 把数据大致分为数量相等的几类
- pd.cut() -- 自己指定分组间隔
- 数量统计
- 对象.value_count()
- one-hot编码
- 把数据转换为0,1统计类型
- 别名:哑变量、热独编码
- API
- pd.get_dummies(data,prefix)
- data:pd.cut或者pd.qcut()后的数据
- prefix:分组名字
- pd.get_dummies(data,prefix)
- 数据离散化
- 高级处理-数据合并
- pd.contact()
- axis=
- pd.merge(left,right,on,how)
- left -- 左表
- right -- 右表
- on -- 指定键
- how -- 按照什么方式进行拼接
- pd.contact()
- 高级处理-交叉表与透视表
- 用于探索两列数据之间的关系
- pd.crosstab()
- 返回具体数据
- 对象.pivot_table()
- 返回占比情况
- 高级处理-分组和聚合
- API
- 对象.groupby()
- 参数as_index -- 是否进行设置索引
- 对象.groupby()
- 注意
- 可以对数据进行多次分组需要里面传递一个列表进行完成
- API
- 高级处理-缺失值处理