2016-12-29 5 views
0

Я получил pandas.DataFrame ДФ:Как построить подмножество pandas.DataFrame с Plotly

Open High Low Close установка индекс физического объема DAYTIME

0 107,390 107,402 107,389 107,402 190,099998 0 0,0 -1

1 107,190 107,275 107,187 107,265 1419,299994 1 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 2746,099976 8 8,0 1

тогда я выбираю подмножество из dataframe:

Dfs = df.loc [ДФ [ 'настройки'] == 1]

, когда я пытаюсь нарисовать сюжет с Plotly и ДПП, он показывает ошибку, но он работает с df.

фига = FF.create_candlestick (ДФС [ 'Open'], ДФС [ 'High'], ДФС [ 'Low'], ДФС [ 'Close'], финики = ДФС [ 'индекс'])

Traceback (последний последний звонок): Файл «C:/Users/Qiu/Desktop/FX Programming/H1Signals.py», строка 102, в fig = FF.create_candlestick (dfs ['Open'], dfs [' High '], dfs [' Low '], dfs [' Close '], date = dfs [' index ']) Файл «C: \ Users \ Qiu \ Anaconda3 \ lib \ site-packages \ plotly \ tools.py ", строка 5810, в create_candlestick ** kwargs) Файл« C: \ Users \ Qiu \ Anaconda3 \ lib \ site-packages \ plotly \ tools.py », строка 4973, в _validate_ohlc , если высокий [индекс] < lst [index]: Файл «C: \ Users \ Qiu \ Anaconda3 \ lib \ site-packages \ pandas \ core \ series.py», строка 583, в getitem result = self.index.get_value (self, key) Файл " C: \ Users \ Qiu \ Anaconda3 \ lib \ site-packages \ pandas \ indexes \ base.py ", строка 1980, в get_value tz = getattr (series.dtype, 'tz', None)) Файл" pandas \ index.pyx ", строка 103, в pandas.index.IndexEngine.get_value (pandas \ index.c: 3332) Файл« pandas \ index.pyx », строка 111, в pandas.index.IndexEngine.get_value (pandas \ index .c: 3035) Файл «pandas \ index.pyx», строка 159, в pandas.index.IndexEngine.get_loc (pandas \ index.c: 4018) Файл «pandas \ hashtable.pyx», строка 303, в пандах .hashtable.Int64HashTable.get_item (pandas \ hashtable.c: 6610) Файл «pandas \ hashtable.pyx», строка 309, в pandas.hashtable.Int64HashTable.get_item (pandas \ hashtable.с: 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']) 

При использовании выбора условия для сращивания dataframe он сохраняет свой первоначальный индекс. Плоский бэкэнд-код пытается пройти через индекс линейным образом, чтобы он мог сломаться. Однако это может добавить столбец с именем «index» или «unnamed: 0». Поэтому перед тем, как вы заговорите, убедитесь, что у вас нет двух столбцов с именем «index». Надеюсь это поможет.