【发布时间】:2016-09-28 04:03:51
【问题描述】:
- 我的数据长度超过 3000。
- 以下是 20 天价值的代码(股票市场的交易量比率)
- 耗时超过 2 分钟。
-
有什么好的方法可以减少运行时间。
import pandas as pd import numpy as np from pandas.io.data import DataReader import matplotlib.pylab as plt data = DataReader('047040.KS','yahoo',start='2010') data['vr']=0 data['Volume Ratio']=0 data['acend']=0 data['vr'] = np.sign(data['Close']-data['Open']) data['vr'] = np.where(data['vr']==0,0.5,data['vr']) data['vr'] = np.where(data['vr']<0,0,data['vr']) data['acend'] = np.multiply(data['Volume'],data['vr']) for i in range(len(data['Open'])): if i<19: data['Volume Ratio'][i]=0 else: data['Volume Ratio'][i] = ((sum(data['acend'][i-19:i]))/((sum(data['Volume'][i-19:i])-sum(data['acend'][i-19:i]))))*100
【问题讨论】:
-
请考虑编辑标题:使其更具体地解决您的问题。
标签: python numpy pandas dataframe iteration