将 csv 转换为面板 pandas 用于 zipline

Convert a csv to panel pandas for zipline

我正在尝试将 csv 转换为 pandas 中的面板,但 jupyter 保持警惕 "ValueError: Panel constructor not properly called!",尽管我已按照 https://blog.quantinsti.com/importing-csv-data-zipline-backtesting/ 中的指南完成:

我的 csv 文件有以下结构:

data = pd.read_csv('.../MWG.csv', index_col=0, parse_dates=['Date'])
data.fillna(method='ffill')

     Date       Open        High        Low         Close       Volume
Symbol                      
MWG 2019-12-12  113.0000    113.5000    112.7000    113.4000    366190
MWG 2019-12-11  110.5000    113.0000    110.3000    113.0000    314710
MWG 2019-12-10  110.9000    111.4000    110.0000    111.0000    412000
MWG 2019-12-09  110.8000    111.6000    110.0000    110.9000    526010
MWG 2019-12-06  110.6000    111.0000    110.0000    110.8000    468980
MWG 2019-12-05  113.2000    113.5000    110.6000    110.6000    544700
MWG 2019-12-04  109.0000    113.0000    108.6000    113.0000    574630

我的代码是:

panel = pd.Panel(data)
panel.minor_axis = ['Open', 'High', 'Low', 'Close', 'Volume']
panel.major_axis = panel.major_axis.tz_localize(pytz.utc)

警报为:

ValueError: Panel constructor not properly called!

请帮我解决这个问题,这样我就可以输入 Zipline 到 运行 策略。

您可以将 panel 用于 ndarraydict of dataframes。你可以试试这个,

>>> data = {}
>>> data['MGW'] = pd.read_csv('.../MWG.csv', index_col=0, parse_dates=['Date'])
>>> panel = pd.Panel(data)