Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python QSTK&x27;s eventprofiler函数没有';不能正确地绘图_Python_Pandas_Graph_Plot_Qstk - Fatal编程技术网

Python QSTK&x27;s eventprofiler函数没有';不能正确地绘图

Python QSTK&x27;s eventprofiler函数没有';不能正确地绘图,python,pandas,graph,plot,qstk,Python,Pandas,Graph,Plot,Qstk,使用乔治亚理工学院Coursera计算投资课程的QSTK,Examples/eventprofiler/tutorial.py末尾的eventprofiler函数不会输出视频中显示的图形。(见下图。) 为第4周的练习生成的其他PDF相同为空,但事件编号正确。创建PDF似乎是一种浪费,因为这些数字可能只是输出到终端 我查看了图像上显示的index.py:2204的错误输出,但修复不明显。(关于熊猫相关的Github bug的一些类似的(但不完全相同的)问题的回溯将Entx.Py置于健康调用栈的中间

使用乔治亚理工学院Coursera计算投资课程的QSTK,Examples/eventprofiler/tutorial.py末尾的eventprofiler函数不会输出视频中显示的图形。(见下图。)

为第4周的练习生成的其他PDF相同为空,但事件编号正确。创建PDF似乎是一种浪费,因为这些数字可能只是输出到终端

我查看了图像上显示的index.py:2204的错误输出,但修复不明显。(关于熊猫相关的Github bug的一些类似的(但不完全相同的)问题的回溯将Entx.Py置于健康调用栈的中间。)

如果有时间,我可能会深入研究eventprofiler代码,但我想我应该先问一下。堆栈溢出在QSTK和pandas上几乎没有任何明显与快速5分钟搜索相关的内容


注:我安装了VirtualBox、Ubuntu和QSTK,正如佐治亚理工学院课程计算投资课程quantsoftware wiki中所述。到目前为止,我已成功完成所有作业,因此我认为我的设置应该可以。

问题在于EventProfiler。
Ubuntu的默认安装位置为/usr/local/lib/python2.7/dist-packages/QSTK-0.2.8-py2.7.egg/QSTK/qstkstudy/EventProfiler.py

if b_market_neutral == True:
    df_rets = df_rets - df_rets[s_market_sym] # it fails here
    del df_rets[s_market_sym]
    del df_events[s_market_sym]
在这段代码中:

if b_market_neutral == True:
    df_rets = df_rets - df_rets[s_market_sym]
    del df_rets[s_market_sym]
    del df_events[s_market_sym]
问题在于减法<代码>df_rets最后填充了NAN。不确定原因,一定是底层系统发生了变化,导致了这种情况。
它可以通过对for循环中的每个符号进行减法来修复,如下所示:

if b_market_neutral == True:
    for sym in df_events.columns:
        df_rets[sym] = df_rets[sym] - df_rets[s_market_sym]
    del df_rets[s_market_sym]
    del df_events[s_market_sym]
您可以从下载带有修复程序的EventProfiler.py文件。重命名安装中的原始版本,并将其替换为此版本。
根据奋进公司的建议,我还将误差条的alpha值从0.1更改为0.6,以使其更清晰可见,奋进公司也在您提到的课程中:

if b_errorbars == True:
    plt.errorbar(li_time[i_lookback:], na_mean[i_lookback:],
                yerr=na_std[i_lookback:], ecolor='#AAAAFF',
                alpha=0.6) #Changed alpha from 0.1 to 0.6 (Jose A Dura)

我可以确认问题在qstkstudy/EventProfiler.py中

if b_market_neutral == True:
    df_rets = df_rets - df_rets[s_market_sym] # it fails here
    del df_rets[s_market_sym]
    del df_events[s_market_sym]
我是这样解决的:

if b_market_neutral == True:
        df_rets = df_rets.sub(df_rets[s_market_sym].values, axis=0)
        del df_rets[s_market_sym]
        del df_events[s_market_sym]