2016-12-29 26 views
0

我pandas.DataFrame DF:如何绘制pandas.DataFrame的子集Plotly

开盘价最高价最低价收盘价成交量指标白天设置

0 107.390 107.402 107.389 107.402 190.099998 0 0.0 -1

1 107.190 107.275 107.187 107.265 1 1419.299994 1.0 1

2 107.272 107.272 107.255 107.256 174.000000 2 2.0 -1

3 10 7.255 107.255 107.185 107.255 2581.300001 3 3.0 -1

4 107.199 107.258 107.185 107.245 4102.199995 4 4.0 -1

5 107.195 107.258 107.185 107.250 3335.600000 5 5.0 1

6 107.242 107.258 107.185 107.248 2824.900019 6 6.0 -1

7 107.343 107.345 107.187 107.245 1291.600012 7 7.0 -1

8 107.195 107.265 107.180 107.251 8 2746.099976 8.0 1

然后我从数据帧中选择的子集:

DFS = df.loc [DF [ '设置'] == 1]

当我尝试绘制Plotly和DFS的情节,它示出了错误,但它适用于df。

无花果= FF.create_candlestick(DFS [ '打开'],DFS [ '高'],DFS [ '低'],DFS [ '关闭'],日期= DFS [ '索引'])

Traceback(最近一次调用最后一次): 文件“C:/ Users/Qiu/Desktop/FX Programming/H1Signals.py”,第102行,在 fig = FF.create_candlestick(dfs ['Open'],dfs [高'],dfs ['低'],dfs ['关闭'],日期= dfs ['索引']) 文件“C:\ Users \ Qiu \ Anaconda3 \ lib \ site-packages \ plotly \ tools.py “,line 5810,in create_candlestick ** kwargs) 文件”C:\ Users \ Qiu \ Anaconda3 \ lib \ site-packages \ plotly \ tools.py“,行4973,在_validate_ohlc中 if high [index] < lst [index]: 文件“C:\ Users \ Qiu \ Anaconda3 \ lib \ site-packages \ pandas \ core \ series.py”,第583行,在getitem result = self.index.get_value(self,key) File“ C:\ Users \ Qiu \ Anaconda3 \ lib \ site-packages \ pandas \ indexes \ base.py“,第1980行,在get_value tz = getattr(series.dtype,'tz',None)) File”pandas \ index.pyx“,第103行,在pandas.index.IndexEngine.get_value(pandas \ index.c:3332) pandas.index.IndexEngine.get_value中的文件”pandas \ index.pyx“,第111行(pandas \ index .c:3035) pandas.index.IndexEngine.get_loc(pandas \ index.c:4018)中的文件“pandas \ index.pyx”,第159行, pandas中的文件“pandas \ hashtable.pyx”,第303行.hashtable.Int64HashTable.get_item(pandas \ hashtable.c:6610) pandas.hashtable.Int64HashTable.get_item(pandas \ hashtable。)中的文件“pandas \ hashtable.pyx”,第309行。C:6554) KeyError异常:0

回答

0

尝试:

dfs = df.loc[df['setup'] == 1] 
dfs = dfs.reset_index() 
fig = FF.create_candlestick(dfs['Open'], dfs['High'], dfs['Low'], dfs['Close'], dates=dfs['index']) 

当您使用条件选择拼接它保持其原始的索引数据帧。 Plotly后端代码尝试以线性方式遍历索引,因此可能会中断。但是,这可能会添加一个名为'index'或'unnamed:0'的列。因此,在绘制之前,请确保您没有两列名为'index'的列。希望这可以帮助。