我正在建立一个数据分析工具,我需要存储在数据库中的比赛赔率。这样的赔率类型之一被称为“三连胜”或“三连胜”,在这里你必须选择赢得三个参与者在正确的顺序。由于每个比赛最多可以有16名选手(但通常是10名左右),这意味着我有16x15x14个不同的可能排列。为了存储这些,我用“race\u id”、“pos1”、“pos2”、“pos3”和“value”列创建了一个表,其中我只存储现有的赔率。Pos1是赢家,pos2是第二名,pos3是第三名,value是这个特定排列的赔率值。
这一切工作得相当好,我通常有大约500个排列每种族存储在数据库中。你知道吗
你还活着?现在是给我带来麻烦的部分。有时我需要从数据库中提取一些数据,它必须是某种形式(CSV)。这不是我的事。
新的格式是“raceid”,“perm\u 1\u 2\u 3”,“perm\u 1\u 2\u 4”。。。,“permïu 1ïu 2ïu 16”,“permïu 1ïu 3ïu 2”,“permïu 1ïu 3ïu 4”…
所有列都必须以这种新形式存在,即使我没有将它们存储在db中。你知道吗
我不知道该怎么做。任何提示和提示都将不胜感激。你知道吗
下面是一个以db为单位的小数据示例:
raceid pos1 pos2 pos3 value
201411 1 2 6 4643.6
201411 1 2 7 2321.8
201411 1 2 9 2321.8
201411 1 3 2 9287.2
201411 1 3 4 4643.6
编辑:
我需要这个:
raceid perm_1_2_3 perm_1_2_4 perm_1_2_5 perm_1_2_6 perm_1_2_7 perm_1_2_8 perm_1_2_9 perm_1_2_10 ...
201411 None None None 4643.6 2321.8 None 2321.8 None
这是一个真正的问题,我不希望有人为我做这件事。我只是希望得到一些提示或提示我应该如何解决这个问题。你知道吗
您可以使用以下内容来生成这些列名:
这项工作在Python2.6及更高版本中进行。 对于旧版本,您可以查看以下帖子: How to generate all permutations of a list in Python
好的,您有一些您没有解释过的形式的输入数据,您想要生成从
perm_1_2_3
到perm_16_15_14
的列。你知道吗一种非常简单的方法是使用^{} 函数来生成所有的排列;然后只需设置字符串格式:
我假设
odds
是一个以马的数字元组为键的字典,可能存储在一个由raceid
键控的更大的dict中,你可以得到如下结果:相关问题 更多 >
编程相关推荐