根据标准创建随机选择的项目列表

2024-05-26 11:09:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着根据他们的投资策略随机选择一个基金列表。 例如,如果我有以下数据帧:

基金名称/策略

  • 基金1/活动家
  • 基金2/活动家
  • 基金3/活动家
  • 基金4/活动家
  • 基金5/宏
  • 基金6/宏
  • 基金7/宏

我想从每个策略类别中随机选择2只基金。我有18个策略和数千个基金。你知道吗

我尝试了以下方法:

 Strategylist={'Activist', 'Macro'}

 for x in Strategylist:
     np.random.choice(df[df.loc[:,'Strategy']==x].FundName,2,replace=False)

理想情况下,从每种策略中选择的基金数量将是灵活的。例如,如果我们选择:

策略/基金

  • 活动家/2
  • 宏/1

然后每次,我运行循环,我会得到一个独特的随机选择基金与2随机活动家基金和1随机宏观基金,如基金1,基金3,基金6


Tags: 数据方法in名称df列表for基金
1条回答
网友
1楼 · 发布于 2024-05-26 11:09:59

设置代码

funds = ["Fund{}".format(i+1) for i in range(7)]
strategies = ['Activist']*4 + ['Macro']*3
df = pd.DataFrame(list(zip(funds, strat)), columns=('FundName', 'Strategy'))

您可以从数据框中获得策略列表

all_strategies = set(df['Strategy'])

然后,您可以得到与给定策略匹配的所有基金名称,如下所示:

my_fund_names = df[df['Strategy']=='Activist']['FundName'].values

就像你的问题一样,你可以使用np.随机选择从my_fund_names中选择。你知道吗

相关问题 更多 >