量化编程技术—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对象会带来一定的开销,因此在默认情况 ...
随机推荐
- koa-session 知识点
github 网址:https://github.com/koajs/session session 是一个对象
- easyui datebox 只显示日期,本文为转载,稍加改动
var DateBoxHandler = {}; DateBoxHandler.onlyShowMonth = function(id) { function padding(v) {if (v &l ...
- python基础语法12 内置模块 json,pickle,collections,openpyxl模块
json模块 json模块: 是一个序列化模块. json: 是一个 “第三方” 的特殊数据格式. 可以将python数据类型 ----> json数据格式 ----> 字符串 ----& ...
- 加深对 JavaScript This 的理解
我相信你已经看过很多关于 JavaScript 的 this 的谈论了,既然你点进来了,不妨继续看下去,看是否能帮你加深对 this 的理解. 最近在看 <You Dont Know JS> ...
- redux有价值的文档
使用 Redux 管理状态,第 1 部分 https://www.ibm.com/developerworks/cn/web/wa-manage-state-with-redux-p1-david-g ...
- Virtual DOM--react
Consider a DOM made of thousands of divs. Remember, we are modern web developers, our app is very SP ...
- What Is React?--MVC
React is a declarative, efficient, and flexible JavaScript library for building user interfaces. It ...
- [转载] miller rabin
本文转载自https://www.cnblogs.com/zsq259/p/11602175.html Miller-Rabin 事先声明,因为菜鸡Hastin知识水平有限就是菜,因此语言可能不是特别 ...
- 【数论】[涨姿势:同余]P2312解方程
题目描述 已知多项式方程:\(a_0 + a_1x + a_2x^2+...+a_nx^n = 0\) 求这个方程在[1,m]内的整数解 \(1\leq n\leq100,|a_i|\leq 10^{ ...
- shell 文件的包含
使用.或者source api.sh function intadd() { let data=$+$ echo $data } test.sh #!/bin/bash . api.sh read d ...