量化编程技术—pandas与数据分析
# -*- coding: utf-8 -*- # @Date: 2017-08-26 # @Original: import numpy as np stock_cnt = 200 view_days = 504 # 生成序列 stock_day_change = np.random.standard_normal((stock_cnt, view_days)) stock_day_change.shape import pandas as pd 列出前5行数据 pd.DataFrame(stock_day_change).head(5) 4.1.2 索引行列序列 # 从2017-1-1向上时间递进,单位freq='1d'即1天 days = pd.date_range('2017-1-1', periods=stock_day_change.shape[1], freq='1d') # 股票0 -> 股票stock_day_change.shape[0] stock_symbols = ['股票 ' + str(x) for x in range(stock_day_change.shape[0])] # 分别设置index和columns df = pd.DataFrame(stock_day_change, index=stock_symbols, columns=days) # 表4-3所示 df.head(2) df_stock0 = df['股票 0'] print(type(df_stock0)) # 打印出Series的前5行数据, 与DataFrame一致 # <class 'pandas.core.series.Series'> df_stock0.head() 4.2.1 数据整体分析 info()查看数据是否有缺失,及各个子数据的数据类型 tsla_df.info() describe()展示每组数据的统计信息 tsla_df.describe() 4.2.2 索引选取和切片选择 使用loc配合行名称、列名称选取切片示例如下 # 2014-07-23至2014-07-31 开盘价格序列 tsla_df.loc['2014-07-23':'2014-07-31', 'open'] iloc配合行索引数值及列索引数值选取切片 # [1:5]:(1,2,3,4),[2:6]: (2, 3, 4, 5) tsla_df.iloc[1:5, 2:6] 根据列名混合选择 tsla_df.[['close','high','low']][0:3] 4.2.3 逻辑条件进行数据筛选 # abs为取绝对值 # 涨跌幅大于8%,交易成交量大于统计周期内的平均值的2.5倍 tsla_df[(np.abs(tsla_df.netChangeRatio) > 8) & (tsla_df.volume > 2.5 * tsla_df.volume.mean())] 4.2.4 数据转换与规整 tsla_df.sort_index(by='netChangeRatio')[:5] # 如果一行的数据中存在na就删除这行 tsla_df.dropna() # 通过how控制 如果一行的数据中全部都是na就删除这行 tsla_df.dropna(how='all') # 使用指定值填充na, inplace代表就地操作,即不返回新的序列在原始序列上修改 tsla_df.fillna(tsla_df.mean(), inplace=True).head() # pct_change()对序列从第二项开始向前做减法后再除以前一项,即涨跌幅 tsla_df.close.pct_change()[:3] # 将change_ratio转变成与tsla_df.p_change字段一样的百分百,同样保留两位小数 np.round(change_ratio[-5:] * 100, 2) 4.2.5 数据本地序列化操作 tsla_df.to_csv('../gen/tsla_df.csv', columns=tsla_df.columns, index=True) tsla_df_load = pd.read_csv('../gen/tsla_df.csv', parse_dates=True, index_col=0) tsla_df_load.head()
量化编程技术—pandas与数据分析的更多相关文章
- 量化编程技术—matplotlib与可视化
import matplotlib.pyplot as plt import numpy as np from mpl_toolkits.mplot3d import Axes3D np.random ...
- 量化编程技术—itertools寻找最优参数
# -*- coding: utf-8 -*- # @Date: 2017-08-26 # @Original: ''' 在量化数据处理中,经常使用itertools来完成数据的各种排列组合以寻找最优 ...
- 量化编程技术—numpy与统计学
# -*- coding: utf-8 -*- # @Date: 2017-08-26 # @Original: import numpy as np # 200支股票 stock_cnt = 200 ...
- 量化编程技术—pdb进行调试
# -*- coding: utf-8 -*- # @Date: 2017-08-26 # @Original: import pdb def gen_buy_change_list(): buy_c ...
- 关于如何提高Web服务端并发效率的异步编程技术
最近我研究技术的一个重点是java的多线程开发,在我早期学习java的时候,很多书上把java的多线程开发标榜为简单易用,这个简单易用是以C语言作为参照的,不过我也没有使用过C语言开发过多线程,我只知 ...
- Atitit.异步编程技术原理与实践attilax总结
Atitit.异步编程技术原理与实践attilax总结 1. 俩种实现模式 类库方式,以及语言方式,java futuretask ,c# await1 2. 事件(中断)机制1 3. Await 模 ...
- Java Web编程技术学习要点及方向
学习编程技术要点及方向亮点: 传统学习编程技术落后,应跟著潮流,要对业务聚焦处理.要Jar, 不要War:以小为主,以简为宝,集堆而成.去繁取简 Spring Boot,明日之春(future of ...
- javascript学习 真正理解DOM脚本编程技术背后的思路和原则
本文学习来源于<javascriptDOM编程艺术>仅作笔记 学会怎样才能利用DOM脚本编程技术以一种既方便自己更体贴用户的方式去充实和完善你们的网页. 循序渐进:从最核心的内容开始,逐步 ...
- 转载--提高C++性能的编程技术
读书笔记:提高C++性能的编程技术 第1章 跟踪范例 1.1 关注点 本章引入的实际问题为:定义一个简单的Trace类,将当前函数名输出到日志文件中.Trace对象会带来一定的开销,因此在默认情况 ...
随机推荐
- 《团队名称》第八次团队作业:Alpha冲刺day4
项目 内容 这个作业属于哪个课程 2016计算机科学与工程学院软件工程(西北师范大学) 这个作业的要求在哪里 实验十二 团队作业8-软件测试与ALPHA冲刺 团队名称 快活帮 作业学习目标 (1)掌握 ...
- 项目Beta冲刺(团队)——05.26(4/7)
项目Beta冲刺(团队)--05.26(4/7) 格式描述 课程名称:软件工程1916|W(福州大学) 作业要求:项目Beta冲刺(团队) 团队名称:为了交项目干杯 作业目标:记录Beta敏捷冲刺第4 ...
- github 提供的 api
api api 说明网址 举例 搜索仓库,可根据语言.stars数搜索 https://developer.github.com/v3/search/#search-repositories http ...
- python基础语法4 文件处理
1.什么是文件 操作系统提供给你操作硬盘的一个工具 2.为什么要用文件 因为人类和计算机要永久保存数据 3.怎么用文件 相对路径:a.txt # 必须与当前py文件在同一级目录绝对路径:D:\项目路径 ...
- 通信、端点、IO、文件
什么是网络套接字(Socket)?一时还真不好回答,而且网络上也有各种解释,莫衷一是.下文将以本人所查阅到的资料来说明一下什么是Socket. Socket定义 Socket在维基百科的定义: A n ...
- 2019 CSP-J复赛游记
不出行?不出行考屁呢? 今天的CSP-J似乎比去年简单了一些,可它... 好了,来说一说我的情况. T1:太水,5分钟秒 T2:这个数据有点尴尬,双重循环铁定爆,用链表有有一点小题大做.本蒟蒻在考场上 ...
- Docker网络配置、Docker部署分布式项目
目标 1.Docker网络配置 2.Docker部署SpringCloud项目 Docker网络配置 Docker网络模式介绍 Docker在创建容器时有四种网络模式:bridge/host/cont ...
- yugabyte 安装pg extention
前段时间在学习yugabyte 发现yugabyte 是直接复用了pg server的源码,所以当时就觉得大部分pg extension 也是可用. 今天看到了官方文档中有关于如何安装的,发现还得多看 ...
- 使用haproxy 2.0 prometheus metrics 监控系统状态
haproxy 2.0 已经发布一段时间了,提供内部直接暴露的prometheus metrics 很方便 ,可以快速的监控系统的状态 以下是一个简单的demo 环境准备 docker-compose ...
- 分布式系统CAP定理与BASE理论
CAP定理: 一个分布式系统不可能同时满足一致性(C:Consistency).可用性(A:Availability)和分区容错性(P:Partition tolerance)这三个基本要求,最多只能 ...