㈠ 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只是個好用的工具,方法都是一樣的,只是效率問題
有多少人工,就有多少智能