如何从交易总DataFrame生成单ticker对应DataFrame?是否需要通过字典实现?
解答
你完全可以直接从总交易DataFrame中生成单个ticker对应的独立DataFrame,不需要必须通过字典实现,你的数据量仅40行左右,两种实现方式都不会有性能差异,优先选更简洁的方案即可:
直接生成单个标的DataFrame的方法
- 单标的查询:直接用布尔索引筛选即可,代码示例:
上述代码会直接返回仅包含AAPL交易记录的独立DataFrame,你可以直接基于这个结果做持仓、盈亏计算。# 筛选ticker为AAPL的所有交易记录 aapl_trade_df = total_trade_df[total_trade_df['ticker'] == 'AAPL'] - 批量查询所有标的:如果需要经常调取不同ticker的交易记录,可以用
groupby做分组,不需要手动生成字典:# 按ticker字段分组 ticker_group = total_trade_df.groupby('ticker') # 调取任意ticker的交易记录 msft_trade_df = ticker_group.get_group('MSFT')
什么时候需要用字典实现
只有当你需要对单标的的DataFrame做大量修改、且不希望修改结果影响总交易表的时候,才需要把分组结果存为字典,示例代码:
# 生成key为ticker、value为对应交易DataFrame的字典,用copy避免修改原表 ticker_df_dict = {ticker: df.copy() for ticker, df in total_trade_df.groupby('ticker')}
之后你可以通过ticker_df_dict['标的代码']直接调用对应DataFrame做修改。
内容的提问来源于stack exchange,提问作者JakeGehri
相关产品推荐
相关产品推荐

