我有一个包含不同案例的 excel 文件,每个案例大约有 75 个事件。给定每种情况,每个事件都有发生的概率。所以excel文件是这样的:
event1 event2 ... event75
case1 0.0343 0.0234 ... 0.1194
case2 0.0924 0.0532 ... 0.0023
我想在 python 中生成一个随机数,范围从 0 到 75 以及给定案例的概率。当我处理仅可能发生 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 中获取概率