0

我正在使用 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分钟的记录

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:Before删除内存中的总记录是22794

INFO:root:删除后内存中的记录总数为 24658

INFO:root:删除前内存中的记录总数为 34392

INFO:root:删除后内存中的记录总数为 42982

不确定是什么问题。当来自 API 的数据量较少时工作完美,但在使用实际市场数据时失败。

请提出任何可用的替代方案(numpy 是更好的替代方案吗??)或者请指出错误。

4

0 回答 0