机器学习——数据科学包(三)

机器学习——数据科学包(三)

一、索引

(一)行索引

Series索引
在这里插入图片描述
为行索引命名
在这里插入图片描述
在这里插入图片描述

(二)列索引

为索引命名
在这里插入图片描述

(三)重复索引

在这里插入图片描述
判断是否有重复索引
在这里插入图片描述
对重复索引的值进行求和
在这里插入图片描述
对其求平均值
在这里插入图片描述

(三)多级索引

(1)创建多级索引

在这里插入图片描述

(2)索引交换

选取一级索引
在这里插入图片描述
在这里插入图片描述
选取二级索引
在这里插入图片描述
在这里插入图片描述
选取第a行(是一个DataFrame)
在这里插入图片描述
在这里插入图片描述
选取二级索引为1 的(是两个索引级别的seriers)
在这里插入图片描述
在这里插入图片描述
将一级索引(row-1)和二级索引(row-2)进行交换
在这里插入图片描述
根据一级索引进行排序
在这里插入图片描述
根据二级索引进行排序
在这里插入图片描述

(3)按照索引层次进行统计
a、求和

根据一级索引
在这里插入图片描述
根据二级索引
在这里插入图片描述

(4)索引与列的转换

创建普通的DataFrame
在这里插入图片描述
把c列设计为索引值
在这里插入图片描述
用c和d设计为二级索引
在这里插入图片描述
把索引转换为平面dataframe
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、分组计算

分组计算三步曲:拆分->应用->合并
在这里插入图片描述
分组运算原理
在这里插入图片描述

(一)对Series分组

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(二)对DataFrame分组

在这里插入图片描述

(三)分组中的元素个数统计

显示每个元素分组个数
在这里插入图片描述
根据key1分组然后求和
在这里插入图片描述
只显示data1的结果
在这里插入图片描述
生成多层索引的分组结果,然后用unstack转化成dataframe
在这里插入图片描述
在这里插入图片描述

(四)对分组进行迭代

用for对groupby进行迭代,然后转化成字典
在这里插入图片描述

(五)分组转化为字典

在这里插入图片描述

(六)按列分组

查看每一列的数据类型
在这里插入图片描述
按列进行求和
在这里插入图片描述

(七)通过字典进行分组

创建dataframe
在这里插入图片描述
创建字典
在这里插入图片描述
在这里插入图片描述
用count查看分组后元素的情况
在这里插入图片描述

(八)通过函数进行分组

在这里插入图片描述
在这里插入图片描述
根据行数进行分组
在这里插入图片描述

(九)通过索引级别进行分组

通过多级索引进行分组
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、聚合运算

(一)内置聚合函数

注:pandas的内置聚合函数:sum,mean,min,max,describe
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(二)自定义聚合函数agg

最大值-最小值
在这里插入图片描述

(三)一次性应用多个聚合函数

在这里插入图片描述

在这里插入图片描述

(四)不同的列应用不同聚合函数

在这里插入图片描述

(五)重置索引:让作为索引的key1作为数据而不是索引

在这里插入图片描述
算group时传入参数
在这里插入图片描述

四、分组运算和转换

(一)分组数据变换transform

在这里插入图片描述
在这里插入图片描述
用transform实现;使结果更直观
在这里插入图片描述
在这里插入图片描述

(二)自定义数据处理apply

在这里插入图片描述
在这里插入图片描述

(三)数据过滤filter

在这里插入图片描述
输出按某个列排序最大的两行
在这里插入图片描述
针对key1分组输出最大的2行
在这里插入图片描述
针对data2进行排序
在这里插入图片描述
例子:实现空值处理
在这里插入图片描述
求出东西部州的平均值
在这里插入图片描述
在这里插入图片描述

五、 数据导入导出

1索引:将个列或多个列读取出来构成DataFrame,其中涉及是否从文件中读取索引以及列名
2●类型推断和数据转换:包括用户自定义的转换以及缺失值标记
3
日期解析
4*迭代:针对大文件进行逐块迭代。这个是Pandas和Python原生的csv库的最大区别
5●不规整数据问题:跳过一些行,或注释等等
在pycharm中创建csv文件
在这里插入图片描述
在这里插入图片描述
用ipython notebook读取文件
在这里插入图片描述在这里插入图片描述

(一)索引及列名

在这里插入图片描述
在这里插入图片描述
用整数分配列名称
在这里插入图片描述
指定列名称
在这里插入图片描述
指定多级行索引
在这里插入图片描述
处理不规则的分隔符
注;\s 表示正则表达式中的空格
pandas自动将第一列作为索引
在这里插入图片描述
在这里插入图片描述

(二)缺失值处理

在这里插入图片描述
在这里插入图片描述
指定缺失值
在这里插入图片描述
针对每一列指定缺失值
在这里插入图片描述

(三)逐块的读取数据

指定输出前10行
在这里插入图片描述
textFileReader支持pandas里的迭代器协议在这里插入图片描述
在这里插入图片描述
降序排列,输出前10个
在这里插入图片描述

(四)保存数据到磁盘

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
指定不写索引值
在这里插入图片描述
在这里插入图片描述
写入时指定不写列标签
在这里插入图片描述
在这里插入图片描述
指定只写几列数据
在这里插入图片描述
在这里插入图片描述
指定分割符
在这里插入图片描述
在这里插入图片描述

(五)二进制数据

 用pickle包实现
 缺点:更新速度快,早期写的程序可能输出不够精确

(六)其他格式简介

HDFS: HDF5是个C语言实现的库,可以高效地读取磁盘.上的二进制存储的科学数据

  • Excel文件:
    pd.read. excel/pd ExcelFile/pd.ExcelWrite
  • JISON:通过json模块转换为字典,再转换为DataFrame
  • SQL数据库:通过pd.io.sql模块来从数据库读取数据
    *NoSQL (MongoDB)数据库:需要结合相应的数据库模块, 如pymongo。再通过游标把数据读出来,转换为DataFrame

六、时间序列

(一)python里的datatime

 timedelta 表示时间之间的间隔
 获取当前时间

在这里插入图片描述
求时间差
在这里插入图片描述
在这里插入图片描述
格式化时间
在这里插入图片描述
将字符串转换为datatime
在这里插入图片描述

(二)Pandas里的时间序列

 用python里的时间列表创建时间序列

在这里插入图片描述
在这里插入图片描述

(1)时间序列

已知开始时间和结束时间
在这里插入图片描述
已知开始时间和个数
在这里插入图片描述
在这里插入图片描述
正则化
在这里插入图片描述

(2)时间的频率转换

以天为频率
在这里插入图片描述
以星期为单位
在这里插入图片描述
以月份为频率
在这里插入图片描述
以每个月的最后一个工作日为频率
在这里插入图片描述
以小时为频率
在这里插入图片描述

(三)时期及算术运算

在这里插入图片描述

(1)时期序列

月份
在这里插入图片描述
年份在这里插入图片描述
季度
在这里插入图片描述

(2)时期的频率转换
a、以年为单位的时期转换为以月为单位的时期(默认终点)

在这里插入图片描述
起始时间
在这里插入图片描述

b、以月为单位转化成以年为单位

每年的结束时间是12月份
在这里插入图片描述
每年的结束月份是3月份
在这里插入图片描述

c、在Q-JAN下2016Q4的起始时间段

在这里插入图片描述

d、获取该季度倒数第二个工作日下午4点20分

在这里插入图片描述

(4)Timestamp和Period相互转换
a、将基于时间戳的时间序列转化为基于时期的时间序列

在这里插入图片描述
在这里插入图片描述
以天为频度
在这里插入图片描述
以月为频度时,索引存在重合
在这里插入图片描述

b、将基于时期的时间序列转化为基于时间戳的时间序列

在这里插入图片描述
在这里插入图片描述

七、重采样

●高频率>低频率>降采样: 5分钟股票
交易数据转换为日交易数据
●低频率>高频率>升采样
●其他重采样:每周三(W-WED)转换为每周五(W-FRI)
在这里插入图片描述
以起始时间为行索引
在这里插入图片描述
以结束时间为行索引
在这里插入图片描述

(一)OHLC重采样

采集5分钟里面的最高价,最低价,开盘价,收盘价
在这里插入图片描述

(二)通过groupby重采样

在这里插入图片描述

(1)基于月份重采样

在这里插入图片描述

(2)将以天为单位的时间戳的序列转换成以月份为单位的时期的序列

在这里插入图片描述
在这里插入图片描述

(三)升采样和插值

(1)升采样

在这里插入图片描述
在这里插入图片描述
以季度采样
在这里插入图片描述
在这里插入图片描述
指定向前填充
在这里插入图片描述

(2)插值
ffill后面的数据向前面求插值

在这里插入图片描述
在这里插入图片描述
设置限制
在这里插入图片描述

(四)时期重采样

在这里插入图片描述
以12月份为结尾
在这里插入图片描述
以三月份为结尾
在这里插入图片描述

(五)从文件中解析出序列

在这里插入图片描述
将索引列设为Date
在这里插入图片描述
将日交易数据转换为周交易数据
在这里插入图片描述
求出周交易量
在这里插入图片描述
在这里插入图片描述

八、数据可视化

Pandas 的数据可视化使用matplotib为基础组件。 更基础的信息可参阅matplotib相关内容。本节主要介绍Pandas里提供的matplotib更便捷的数据可视化操作。

(一)线型图

(1)一维数组

在这里插入图片描述
在这里插入图片描述

(2)二维数组

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
使x轴和y轴相同
在这里插入图片描述
在这里插入图片描述
指定索引
在这里插入图片描述
以ID为x轴,A,C为y轴。
在这里插入图片描述

(二)柱状图

在这里插入图片描述
只画一列
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(三)直方图

在这里插入图片描述
a是生成1000个数,均值在-1附近;b是生成1000个数,均值在0附近;c是生成1000个数,均值在1附近。
在这里插入图片描述
在这里插入图片描述
只画a列
在这里插入图片描述
bins改变等分密度
在这里插入图片描述
在这里插入图片描述
加大等分密度
在这里插入图片描述
将图形叠在一起
在这里插入图片描述

(四)概率密度图

 注:均值决定概率密度中心点的位置,方差决定图形宽窄
(1)画出a的概率密度图

在这里插入图片描述

(2)画出A、B、C的概率密度图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(五)散布图:当数据比较大时,可以通过散布图观察各个数据维度之间的关联,对其进行分类。

在这里插入图片描述
在这里插入图片描述
创建400个数据
在这里插入图片描述
a和b的散布图
在这里插入图片描述
b和c的散布图
在这里插入图片描述

(六)饼图

默认为椭圆形
在这里插入图片描述
指定为正方形
在这里插入图片描述
指定标签
在这里插入图片描述
指定百分比
在这里插入图片描述
将字体放大
在这里插入图片描述
指定颜色
在这里插入图片描述

(七)高级绘图函数

Pandas高级绘图函數放在pandas.tools.plotting 包里。
定制化的绘图需要学习matplotib这个包的用法

九、实例

(一)股票数据分析

(1)股票数据获取

在这里插入图片描述
在这里插入图片描述
运行data_source.py,得到.csv文件
在这里插入图片描述

(2)股票波动幅度分析
a、波动幅度周期选择

在这里插入图片描述
在这里插入图片描述
输出Adj Close数据:
在这里插入图片描述
对数据进行重新采样
在这里插入图片描述
(最高价-最低价)/最高价=每个月的波动幅度
在这里插入图片描述
求平均值
在这里插入图片描述

b、股票波动幅度计算

在这里插入图片描述

(3)年化收益率
a、最大年化收益率

在这里插入图片描述

b、当前年化收益率

在这里插入图片描述

c、平均年化收益率

在这里插入图片描述
每年的数据增长情况:
在这里插入图片描述
在这里插入图片描述
求出具体每年的增长价格
在这里插入图片描述
求每年的增长率在这里插入图片描述
画出柱状图
在这里插入图片描述

(二)时间事件日志

(1)时间事件日志简介
使用dida365.com来作为GTD工具
使用特殊格式记录事件类别和花费的时间,
(2)数据读取
a、导出数据

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

b、读出数据

在这里插入图片描述
在这里插入图片描述
创建一个日期解析函数给日期读入函数
在这里插入图片描述
使dudate变成只包含日期的索引
在这里插入图片描述

(3)数据清洗
a、数据选择

Status !=0表示事件按时完成了
在这里插入图片描述

b、数据解析

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(4)数据分析
a、时间总览

在这里插入图片描述
在这里插入图片描述
求平均每天用来成长的时间
在这里插入图片描述

b、精力分配

在这里插入图片描述
在这里插入图片描述

c、专注力

每一天的专注力
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
每个月的精力分配:
对数据进行重采样
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值