我试着用熊猫的mplfinance数据创建OHLC图表。原始数据存储在一个数据库中,其中包含date ( data )、time (hora)和last,因此,在尝试创建图表之前,我必须重采样到OHLC。
cur = conn.cursor()
nameddict=({"ticker": "GFGC90.0JU"})
select="""SELECT
EXTRACT(EPOCH FROM (fecha || ' ' || hora)::timestamp) as datetime, last from preciosrt
where ticker=%(ticker)s and last is not null
"""
df = pandas.read_sql_query(select, conn, params=nameddict)
df['datetime'] = pandas.to_datetime(df['datetime'], unit='s')
df = df.set_index('datetime')
ohlc = df.resample('5Min').ohlc()
print(ohlc)
mpf.plot(ohlc)如您所见,生成的dataframe包含所需的结果:
last
open high low close
datetime
2020-05-04 16:15:00 5.10 5.10 5.10 5.100
2020-05-04 16:20:00 5.14 5.14 5.02 5.140
2020-05-04 16:25:00 5.00 5.25 5.00 5.249
2020-05-04 16:30:00 5.29 5.45 5.29 5.450
2020-05-04 16:35:00 5.45 5.50 5.30 5.300
2020-05-04 16:40:00 5.21 5.30 5.20 5.200
2020-05-04 16:45:00 5.20 5.30 5.20 5.200
2020-05-04 16:50:00 5.21 5.30 5.21 5.260
2020-05-04 16:55:00 5.26 5.33 5.10 5.100但是,当我试图用mpf.plot(ohlc)绘制图表时,我会得到以下错误:
...
~/.local/lib/python3.6/site-packages/pandas/core/indexes/base.py in get_loc(self, key, method, tolerance)
2646 return self._engine.get_loc(key)
2647 except KeyError:
-> 2648 return self._engine.get_loc(self._maybe_cast_indexer(key))
2649 indexer = self.get_indexer([key], method=method, tolerance=tolerance)
2650 if indexer.ndim > 1 or indexer.size > 1:
pandas/_libs/index.pyx in pandas._libs.index.IndexEngine.get_loc()
pandas/_libs/index.pyx in pandas._libs.index.IndexEngine.get_loc()
pandas/_libs/hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item()
pandas/_libs/hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item()
KeyError: 'Open'我怎样才能解决这个问题?
发布于 2020-05-17 20:42:57
我也有类似的问题,我认为强积金在列的名称上非常特别,尝试用以下方法重命名列和索引:
df.columns = ['Open', 'High', 'Low', 'Close', 'Volume']
df.index.name = "Date"https://stackoverflow.com/questions/61610822
复制相似问题