㈠ python使用pandas处理绘图问题
数据多了处理起来就是慢,况且你才8G的内存,可以给你提供一个方法看还运行着没有。
如果是Windows系统就打开任务管理器,如果是Mac或Linux就使用top命令,主要看CPU和内存的使用情况,我估计CPU可能没满,但是内存应该满了
㈡ 用Python怎么做量化投资
本文将会讲解量化投资过程中的基本流程,量化投资无非这几个流程,数据输入------策略书写------回测输出
其中策略书写部分还涉及到编程语言的选择,如果不想苦恼数据输入和回测输出的话,还要选择回测平台。
一、数据
首先,必须是数据,数据是量化投资的基础
如何得到数据?
Wind:数据来源的最全的还是Wind,但是要付费,学生可以有免费试用的机会,之后还会和大家分享一下怎样才Wind里摘取数据,Wind有很多软件的借口,Excel,Matlab,Python,C++。
预测者网:不经意间发现,一个免费提供股票数据网站 预测者网,下载的是CSV格式
TB交易开拓者:Tradeblazer,感谢@孙存浩提供数据源
TuShare:TuShare -财经数据接口包,基于Python的财经数据包,利用Python进行摘取
如何存储数据?
Mysql
如何预处理数据?
空值处理:利用DataFrame的fill.na()函数,将空值(Nan)替换成列的平均数、中位数或者众数
数据标准化
数据如何分类?
行情数据
财务数据
宏观数据
二、计算语言&软件
已经有很多人在网上询问过该选择什么语言?笔者一开始用的是matlab,但最终选择了python
python:库很多,只有你找不到的,没有你想不到,和量化这块结合比较紧密的有:
Numpy&Scipy:科学计算库,矩阵计算
Pandas:金融数据分析神器,原AQR资本员工写的一个库,处理时间序列的标配
Matplotlib:画图库
scikit-learn:机器学习库
statsmodels:统计分析模块
TuShare:免费、开源的python财经数据接口包
Zipline:回测系统
TaLib:技术指标库
matlab:主要是矩阵运算、科学运算这一块很强大,主要有优点是WorkSpace变量可视化
python的Numpy+Scipy两个库完全可以替代Matlab的矩阵运算
Matplotlib完克Matlab的画图功能
python还有很多其他的功能
pycharm(python的一款IDE)有很棒的调试功能,能代替Matlab的WorkSpace变量可视化
推荐的python学习文档和书籍
关于python的基础,建议廖雪峰Python 2.7教程,适合于没有程序基础的人来先看,涉及到python的基本数据类型、循环语句、条件语句、函数、类与对象、文件读写等很重要的基础知识。
涉及到数据运算的话,其实基础教程没什么应用,python各类包都帮你写好了,最好的学习资料还是它的官方文档,文档中的不仅有API,还会有写实例教程
pandas文档
statsmodels文档
scipy和numpy文档
matplotlib文档
TuShare文档
第二,推荐《利用Python进行数据分析》,pandas的开发初衷就是用来处理金融数据的
三、回测框架和网站
两个开源的回测框架
PyAlgoTrade - Algorithmic Trading
Zipline, a Pythonic Algorithmic Trading Library
㈢ 怎么利用pandas做数据分析
pandas的初级功能
1、逻辑运算
data[data['column_1']=='french']
data[(data['column_1']=='french') & (data['year_born']==1990)]
data[(data['column_1']=='french')&(data['year_born']==1990)&(data['city']=='London')]
如果要根据逻辑操作对数据进行运算,在使用& (AND)、~ (NOT)和| (OR)等逻辑操作之前和之后添加“(”&“)”。
data[data['column_1'].isin(['french', 'english'])]
不要为同一列编写多个OR,最好是使用.isin()函数。
2、基本绘图
多亏了matplotlib包,这个特性才得以实现。就像我们在介绍中说的,它可以直接用在pandas身上。
如果你使用Jupyter,在绘图之前,不要忘记写这一行(在代码中只写一次)
3、更新数据
data.loc[8, 'column_1'] = 'english'
将' column_1 '的第8行值替换为' english '
data.loc[data['column_1']=='french', 'column_1'] = 'French'
在一行中更改多行值
pandas的中级功能
1、计算功能
data['column_1'].value_counts
2、对全行、全列或所有数据的操作
data['column_1'].map(len)
len()函数应用于“column_1”的每个元素
map()操作将一个函数应用于列的每个元素。
data['column_1'].map(len).map(lambda x : x/100).plot()
pandas的另一个特点是进行链式操作。它可以帮助你在一行代码中执行多个操作,从而更加简单和高效。
data.apply(sum)
.apply()将函数应用于列。
.applymap()将一个函数应用于表(DataFrame)中的所有单元格。
3、tqdm包
在处理大型数据集时,pandas可能需要一些时间来运行.map()、.apply()、.applymap()操作。tqdm是一个非常有用的包,它可以帮助预测这些操作何时完成。
from tqdm import tqdm_notebook
tqdm_notebook().pandas()
用pandas设置tqdm
data['column_1'].progress_map(lambda x : x.count('e'))
将.map()替换为.progress_map(),.apply()和.applymap()也是一样
图4 这是你在Jupyter上看到的的进度条
4、相关矩阵和散射矩阵
data.corr()
data.corr().applymap(lambda x : int(x*100)/100)
......
㈣ 用pandas计算得到的数据怎样以表格的形式展现出来
writer = pd.ExcelWriter('output.xlsx')
df1.to_excel(writer, 'Sheet1')
df2.to_excel(writer, 'Sheet2')
writer.save()
㈤ 怎么用python计算股票
作为一个python新手,在学习中遇到很多问题,要善于运用各种方法。今天,在学习中,碰到了如何通过收盘价计算股票的涨跌幅。
第一种:
读取数据并建立函数:
import numpy as np
import matplotlib.pyplot as plt
from scipy.interpolate import spline
from pylab import *
import pandas as pd
from pandas import Series
a=pd.read_csv('d:///1.csv',sep=',')#文件位置
t=a['close']
def f(t):
s=[]
for i in range(1,len(t)):
if i==1:
continue
else:
s.append((t[i]-t[i-1])/t[i]*100)
print s
plot(s)
plt.show()
f(t)
第二种:
利用pandas里面的方法:
import pandas as pd
a=pd.read_csv('d:///1.csv')
rets = a['close'].pct_change() * 100
print rets
第三种:
close=a['close']
rets=close/close.shift(1)-1
print rets
总结:python是一种非常好的编程语言,一般而言,我们可以运用构建相关函数来实现自己的思想,但是,众所周知,python中里面的有很多科学计算包,里面有很多方法可以快速解决计算的需要,如上面提到的pandas中的pct_change()。因此在平时的使用中应当学会寻找更好的方法,提高运算速度。
㈥ python编程这门科目是用来编写股票指标和选股器的吗
python是一门语言补丁,最大的优势在于拥有众多的包,很多事情都可以做。而在数据分析领域提供了pandas,numpy,matplotlib等进行数据可视化,用于股票,自然也是可以的
㈦ python pandas怎样画图
有目的的话,就先简单过一下文档,然后开始在目的驱动下,加深某部分的学习。没目的的话,就看本书,科学计算,数据分析方面的python书有不少。
㈧ 用pandas做数据分析
这个软件做数据分析是非常不错的,值得信赖。
㈨ python做数据分析需要哪些库
NumPy
是Python科学计算的基础包,提供快速高效的多维数组对象ndarray;直接对数组执行数学运算及对数组执行元素级计算的函数;用于读写硬盘上基于数组的数据集的工具;线性代数运算、傅里叶变换以及随机数生成。
Pandas
它可以说是只要做数据分析的,无人不知无人不晓,因为它有着非常重要的作用。Pandas库提供了我们很多函数,能够快速的、方便的处理结构化的大型数据。
毫不夸张的说,Pandas是让Python成为强大的数据分析工具的非常重要的因素,尤其对于金融行业,比如基金股票的分析师,Pandas提供了高性能的时间序列功能和一系列的工具,可以自由灵活的处理数据,使用一次你就会爱上它。
Matplotlib
它是流行的用于绘制数据图表的Python库,它跟IPython结合使用效果更好,提供了一种非常好用的交互式的数据绘图环境。
IPython
它是Python科学计算标准工具集的组成部分,可以把很多东西联系到一起,有点类似于一个增强版的Python shell。
目的就是为了提高编程、测试和调试Python代码的速度,很多大牛都在使用IPython,它非常方便,当我们分析数据的时候,也是用这个工具的,而且不用print,回车即可打印。
㈩ 怎么用python panda 算股票市场收益率
1.收集数据,开盘价,收盘价,交易量
2.用pandas处理数据,处理缺失值
3.用股票收益率的公式带入
说白了,pandas只是个好用的工具,方法都是一样的,只是效率问题
有多少人工,就有多少智能