さまざまなケースと、ケースごとに約 75 のイベントを含む Excel ファイルがあります。それぞれのケースで、それぞれのイベントが発生する可能性があります。したがって、Excel ファイルは次のようになります。
event1 event2 ... event75
case1 0.0343 0.0234 ... 0.1194
case2 0.0924 0.0532 ... 0.0023
指定されたケースの確率で 0 から 75 の範囲の乱数を Python で生成したいと考えています。発生する可能性のあるイベントが 2 つだけのケースを扱ったとき、次のようなコードを使用しました。
excel_cases = pd.read_csv('/.../cases.csv')
def event_probabilities(case):
event_probability = excel_cases.loc[excel_cases['Case'] == case, 'event1'].values[0]
return event_probability
event1_probability = event_probabilities("case1")
np.random.choice(np.arange(1, 3), p=[event1_probability, (1 - event1_probability)])
# can also do an event2_probability instead of 1-event1_probability
ただし、イベントの範囲が大きくなると、これを行うためのより効率的な方法はわかりません。助けてくれてありがとう。
*Excelから確率を取得しているため、他の質問とは異なります