问题描述
我正在使用 Pandas 来存储股票价格的 OHLC 日期。这将是一个连续的提要,我会一直附加到数据框。
在程序中的另一个线程上,一旦数据被读取和处理,我编写了以下逻辑来删除超过 2 分钟的记录。
1 构建刻度数据。
df_tick = pd.DataFrame.from_dict(ticks,orient='columns')
df_tick['last_trade_time'] = pd.to_datetime(df_tick['last_trade_time'])
df_build_tick = df_build_tick.append(df_tick[['instrument_token','last_trade_time','last_price','volume','oi','average_price']].copy())
以下步骤在同一个程序的不同线程中运行
2 将列 'last_trade_time' 转换为日期时间对象
df_build_tick['last_trade_time'] = pd.to_datetime(df_build_tick['last_trade_time'])
3 删除超过 2 分钟的记录 ols
df_build_tick.drop(df_build_tick[df_build_tick['last_trade_time'] < to_dt].index,inplace=True)
问题是记录没有被删除,df df_build_tick 越来越大,每次迭代,df 删除需要很长时间,也不会删除
从程序执行中记录:
INFO:root:删除前内存中的总记录数为 11428
INFO:root:删除后内存中的总记录数为 11566
INFO:root:删除前内存中的总记录数为 22794
INFO:root:删除后内存中的总记录数为 24658
INFO:root:删除前内存中的总记录数为 34392
INFO:root:删除后内存中的总记录数为 42982
不确定是什么问题。当来自 API 的数据量较少时,工作完美,但在使用实际市场数据时失败。
请提出任何可用的替代方案(numpy 是更好的替代方案吗??)或请指出错误。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)