我使用的是以下随机值:
dict_positionxy = {'a difficult anglethe left':{'y':random.randrange(43,54), 'x':random.randrange(0,6)},
'a difficult anglethe right':{'y':random.randrange(14,25), 'x':random.randrange(0,6)},
'long rangeN/A': {'y':random.randrange(0,68), 'x':random.randrange(40,52)},
'long rangethe centre':{'y':random.randrange(0,68), 'x':random.randrange(28,40)},
'long rangethe left': {'y':random.randrange(54,68), 'x':random.randrange(0,24)},
'long rangethe right':{'y':random.randrange(0,14), 'x':random.randrange(0,24)},
'outside the boxN/A':{'y':random.randrange(14,54), 'x':random.randrange(16,28)},
'penaltyN/A':{'y':random.randrange(36), 'x':random.randrange(8)},
'the boxthe centre':{'y':random.randrange(25,45), 'x':random.randrange(0,6)},
'the boxthe left':{'y':random.randrange(41,54), 'x':random.randrange(0,16)},
'the boxthe right':{'y':random.randrange(14,22), 'x':random.randrange(0,16)},
'the six yard boxthe left': {'y':random.randrange(33,43), 'x':random.randrange(4,6)},
'the six yard boxthe right':{'y':random.randrange(25,33), 'x':random.randrange(4,6)},
'very close rangeN/A':{'y':random.randrange(25,43), 'x':random.randrange(0,4)}}
为了填充我的X/Y栅格值,如下所示:
df_temp_shots['PositionXY'] = df_temp_shots['Position'].map(dict_positionxy)
问题是某些事件键会重复
例如,如果两个目标具有相同的键“theboxtheleft”,它们将获得相同的值,这是不希望的,因为它们将绘制在同一点上
那么,我如何再次随机化任何重复的值,对于每个键,总是在所需范围内得到唯一的值
注意:此答案使用eval
您可以尝试使用。改为应用。这样,它将迭代所有行并应用不同的随机值。在这个解决方案中,我使用
eval()
在调用存储在dict中的值时计算表达式。请注意,这些值现在存储为字符串这将为您提供以下结果:
其他方法可以是定义函数,或者直接在lambda函数中列出所有条件
不依赖于
eval
的改进解决方案:相关问题 更多 >
编程相关推荐