Python中有类似于quantstrat的东西吗?
这是我要抓的链接:http://www.prudential.com.hk/PruServlet? module = fund &purpose = searchHistFund&fundCd = MMFU_U
"英文版"选项卡位于右上角,以显示网页的英文版本.
我必须按一个按钮才能阅读网页上的资金信息.如果没有,则视图被阻止,并且使用scrapy shell总是导致空[].
<div onclick="AgreeClick()" style="width:200px; padding:8px; border:1px black solid;
background-color:#cccccc; cursor:pointer;">Confirmed</div>
Run Code Online (Sandbox Code Playgroud)
AgreeClick的功能是:
function AgreeClick() {
var cookieKey = "ListFundShowDisclaimer";
SetCookie(cookieKey, "true", null);
Get("disclaimerDiv").style.display = "none";
Get("blankDiv").style.display = "none";
Get("screenDiv").style.display = "none";
//Get("contentTable").style.display = "block";
ShowDropDown();
Run Code Online (Sandbox Code Playgroud)
如何克服这个onclick ="AgreeClick()"函数来刮网页?
我的代码有什么问题,但我可以得到预期的结果.
我想删除列表中的所有"#".
funds_U是数据列表:
In [3]: funds_U
Out[3]:
[u'#',
u'#',
u'MMFU_U',
u'#',
u'#',
u'AAI_U',
u'TGI_U',
u'JAS_U',
u'TAG_U',
u'#',
u'#',
u'AAT_U',
u'BGR_U',
u'BNE_U',
u'IGE_U',
u'#',
u'#',
u'DGF_U',
u'BHC_U',
u'FCF_U',
u'SHK_U',
u'VCF_U',
u'#',
u'JEM_U',
u'SBR_U',
u'TEM_U',
u'#',
u'#',
u'BAB_U',
u'BGA_U',
u'#']
Run Code Online (Sandbox Code Playgroud)
以下是代码:
In [4]: for fund_U in funds_U[:]:
...: funds_U.remove(u"#")
...:
Run Code Online (Sandbox Code Playgroud)
以下是错误:
ValueError Traceback (most recent call last)
<ipython-input-4-9aaa02e32e76> in <module>()
1 for fund_U in funds_U[:]:
----> 2 funds_U.remove(u"#")
3
ValueError: list.remove(x): x not in list
Run Code Online (Sandbox Code Playgroud) 原始的 csv 文件数据是这样的:
06/04/2011,104.64,105.17
07/04/2011,104.98,105.51
08/04/2011,105.43,105.96
11/04/2011,104.47,104.99
Run Code Online (Sandbox Code Playgroud)
如何将 csv 文件读入 DataFrame 并添加多行索引级别,或将多行索引添加到 csv 并导入到 DataFrame 中,如下所示:
JAS
date bid ask
06/04/2011 104.64 105.17
07/04/2011 104.98 105.51
08/04/2011 105.43 105.96
11/04/2011 104.47 104.99
Run Code Online (Sandbox Code Playgroud) 我是Python和Pandas的新手.现在我遇到了:
NameError:未定义名称'price'
我知道这是因为while循环.我是否需要将while循环放在函数容器中并使用return/yield?任何其他选项,以便可以达到价格变量?
随函附上我的部分程序:
fundspercentb = {}
for c in df.columns:
if c[1] == 'bid':
pass
else:
i = -1
while df[c][i] == np.nan:
i-=1
if df[c][i] != np.nan: continue
price=float(df[c][i]) # <----------------------------
ma20=df[c].tail(20).astype(float).mean()
movstd=df[c].tail(20).std()
upperband=ma20+(2*movstd)
lowerband=ma20-(2*movstd)
percentb=(price-lowerband)/(upperband-lowerband)*100 # <------
fundspercentb[c] = percentb
print fundspercent
Run Code Online (Sandbox Code Playgroud)