如何用Pandas基于分析师与股票的多条件生成递增分组ID
需求说明
现有一份按Analyst-Stock-EntryDate时间顺序排序的数据集,包含Analyst、Stock、Conviction、Side等字段(已省略Entry Date和Exit Date)。需要按Analyst和Stock维度生成分组ID(Desired_ID),分组ID的递增规则如下:
- 当
Side从long/short切换为neutral时,分组ID递增 - 当
Side在long与short之间相互切换时(视为跨越neutral区间),分组ID递增
分组ID用于标识分析师对某只股票的投资观点,观点定义为跨越long与short之间的neutral区间。
示例数据集
pd.DataFrame.from_dict({ 'Analyst': ['John'] * 5 + ['Sara'] * 9, 'Stock': ['AAA'] * 5 + ['BBB'] * 3 + ['CCC'] * 3 + ['DDD'] * 3, 'Conviction': ['strong', 'mid', 'neutral', 'mid', 'neutral', 'mid', 'mid', 'neutral', 'strong', 'mid', 'neutral', 'mid', 'mid', 'neutral'], 'Side': ['long', 'long', 'neutral', 'short', 'neutral', 'long', 'short', 'neutral', 'short', 'short', 'neutral', 'short', 'long', 'neutral'], 'Desired_ID': ['1']*3 + ['2']*2 + ['1'] + ['2']*2 + ['1']*3 + ['1'] + ['2']*2 })
内容的提问来源于stack exchange,提问作者user99
相关产品推荐
相关产品推荐

