我正在下载财务数据,这些数据来自 Python 列表中的字典,如下所示:
[{'complete': True,
'volume': 2,
'time': '2004-05-31T21:00:00.000000000Z',
'mid': {'o': '6.07260', 'h': '6.07260', 'l': '6.07260', 'c': '6.07260'}},
{'complete': True,
'volume': 2,
'time': '2004-06-01T21:00:00.000000000Z',
'mid': {'o': '6.08790', 'h': '6.08790', 'l': '6.08790', 'c': '6.08790'}}]
我有几百万个这样的数据点,我想要进入 Pandas。
到目前为止,我使用了以下代码:
v = []
for keys in [x.split(":") for x in m.keys()]:
_v = r.get(keys[0])
for k in keys[1:]:
_v = _v.get(k)
v.append(_v)
return v
record_converter = convrec if conv is None else conv
column_map_ohlcv = OrderedDict([
('time', 'Date'),
('mid:o', 'Open'),
('mid:h', 'High'),
('mid:l', 'Low'),
('mid:c', 'Close'),
('volume', 'Volume')
])
cmap = column_map_ohlcv if colmap is None else colmap
df = pd.DataFrame([list(record_converter(rec, cmap)) for rec in r.get('candles')])
df.columns = list(cmap.values())
它有效,但速度不是很快,因为我需要将“中间”分成不同的列?
是否有一些更直接的方法可以在不使用循环的情况下将其放入数据帧中?例如,使用 numpy 或 pandas 来完成繁重的工作?
期望的结果应该是一个 Pandas 数据框,看起来像这样:
Date Open High Low Close Volum
2004-05-31 21:00:00 6.0726 6.0726 6.0726 6.0726 2
2004-06-01 21:00:00 6.0879 6.0879 6.0879 6.0879 2
米脂
波斯汪
相关分类